一切福田,不離方寸,從心而覓,感無不通。

Category Archives: .Net Core

微软正式推出 gRPC-Web for .NET

今年一月份的时候,微软曾宣布对 gRPC-Web for .NET 的实验性支持,现在它已正式发布。 gRPC 是谷歌开源的高性能、通用 RPC 框架,支持包括 .NET 在内的多种编程语言。它面向移动和基于 HTTP/2 标准设计,但当前,浏览器中无法实现 gRPC HTTP/2 规范,因为没有浏览器 API 能够对请求进行足够的细粒度控制。gRPC-Web 是解决此问题并使 gRPC 在浏览器中可用的标准化协议。 gRPC-Web 即 gRPC for Web Clients。它是一个 JavaScript 库,使 Web 应用程序能够直接与后端 gRPC 服务通信,不需要 HTTP 服务器充当中介。它旨在使 gRPC 在更多情况下可用,包括但不限于: 从浏览器调用 ASP.NET Core gRPC 应用程序 JavaScript SPAs .NET Blazor Web Assembly apps 在 IIS 和 Azure App Service 中托管 ASP.NET Core gRPC 应用程序 从非 .NET Core 平台调用 gRPC —— 在所有 .NET 平台上,HttpClient 均不支持 HTTP/2,而 gRPC-Web 可用于从 Blazor 和 Xamarin 调用 gRPC 服务 微软表示正在与 Blazor 团队合作,使 gRPC-Web 在 Blazor WebAssembly 应用程序中使用时为端到端开发人员提供更好的体验。 根据微软的说法,gRPC 与 […]

龙生   24 Jun 2020
View Details

Linq 中查询一个表中指定的字段

Linq中查询一个表中指定的几个字段: var ts = t.FindAllItems().Where(P => P.CompanyID == CurSiteUser.CompanyId).Select(s => new { BillPeriod = s.BillPeriod,FieldB=s.FieldB }).Distinct().ToList().OrderByDescending(s => s.BillPeriod).Take(24); //   FindAllItems()为查询对应表的所有数据的方法; // Where 里面为查询条件 // Select 为查询的筛选条件  new{}  里面就是要查询的字段 //Distinct() 为去除重复的查询 //ToList() 为将查询转换为List<> //OrderByDescending()  表示排序字段及排序方法(倒序排列) //Take(N)  表示查询前N条数据;   from:https://blog.csdn.net/linlin2294592017/article/details/27540253

龙生   16 Jun 2020
View Details

基于dynamic,动态给强类型Model扩展属性

直接上代码

  示例Model

龙生   16 Jun 2020
View Details

Asp.net Core 跨域配置

一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误

ASP.net Core 跨域有两种,全局和区域 全局跨域: 打开Startup.cs文件.在ConfigureServices方法中添加以下代码 1.配置跨域处理,允许所有来源:

2.允许一个或多个具体来源:

以上两种按需求选择一种即可. Configure方法中添加以下代码

 局部跨域第一种用法: 1.ConfigureServices方法不变,删去Configure中的app.UseCors()方法 2.在Controller顶部或者Action方法顶部加上[EnableCors("自定义的跨域策略名称")]特性,例如

以上就可实现指定某个controller或者action跨域 禁止跨域: 禁止跨域在Controller或者Action加上[DisableCors]特性即可禁止跨域

  参考: https://blog.johnwu.cc/article/asp-net-core-cors.html?from=singlemessage&isappinstalled=0 https://docs.microsoft.com/en-us/aspnet/core/security/cors http://www.cnblogs.com/tianma3798/p/6920704.html   from:https://www.cnblogs.com/xiaoliangge/p/7650465.html

龙生   10 Jun 2020
View Details

.Net Core 通过配置文件(appsetting.json)修改Kestrel启动端口

网上常见方法 网上太多文章通过修改Program文件方法进行修改。例如这样 修改配置文件的方法 将配置文件按照这样修改就行了

写在后面 更多配置参考 https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1 也有有些人搞不懂,为什么要这样写呢,无论是iis,nginx,tomcat 等等这些web服务程序都有自己的配置规则。那是没问题的。但是如果你想要直接用Kestrel呢,这样做绝对是非常棒的,而且可以放到树莓派等小型机器中直接作为服务使用。非常棒。 还有一种就是在本地开发的debug时候,这样可以防止端口冲突,如果是debug,还可以修改launchSettings.json文件进行修改端口。这个文件的修改方式我就不多说了,自己看看里面的配置应该也会很清楚了(这个文件简单修改还可以,自己写一些复杂的系统变量就搞不懂了) 引用 https://www.cnblogs.com/goldenbiu/articles/10755213.html https://www.cnblogs.com/Allen0910/p/8550873.html     from:https://blog.csdn.net/iml6yu/article/details/100692488

龙生   01 Jun 2020
View Details

三步把asp.net core 3.1应用部署到centos7

一、编译发布Asp.net core 应用 直接使用vs2019编译发布后,通过ftp上传到centos的 /www/ 目录下,不再赘述。 二、centos安装asp.net core runtime和nginx 1、安装asp.net core runtime# Copy

  2、安装nginx# 添加源:#

  安装 nginx# Copy

  Nginx常用命令# Copy

  3、使用nginx反向代理# 在 /etc/nginx/ 目录下新建AspnetCoreDemo.conf,内容如下 Copy

  4、重新加载nginx配置#

  三、添加Systemd守护 1、Systemd service内容如下# 路径 /etc/systemd/system/AspnetCoreDemo.service 新建文件

  2、Systemd基本操作命令#

  四、防火墙设置(不需要端口访问,可忽略此步)

  from:https://www.cnblogs.com/wxb8/p/12359521.html

龙生   18 May 2020
View Details

CentOS 下运行.net Core程序

系统: 阿里云的默认 CentOS 7.5 镜像 项目环境:.Net Core 2.2 一、安装.Net Core的运行环境 第一步,如果是一台新的服务器,可以升级一下系统的基础软件。如果没有必要也可以跳过这一步。 执行命令

  第二步,注册Microsoft签名密钥,每个机器只要注册一次就可以 注册命令

执行结果   第三步:安装.Net Core SDK ,这里根据项目环境,需要安装2.2版的。不同的开发环境选择对应的运行时版本即可 执行命令

  完成后,通过命令,可以看出.net core的版本

    第四步:上传一个.Net Core的程序,进入到程序包所在目录 执行命令

    到这里,就可以通过服务器IP加上程序设定的端口号(一般默认是5000)进行访问了。如果你的服务器是在云端,有安全防护,需要开启对应的端口访问权限   二、通过 nginx 进行转发 第一步、安装nginx 执行命令

    第二步,修改 nginx 的配置文件 执行命令

修改 location的值,修改的内容如下:

  这个配置的意思是监听80端口,如果有人访问80端口就把请求转到5000端口,这里的5000端口就是你 .Net Core 程序的端口,默认为5000可以更改,如果有更改换掉即可。 第三步、重启 nginx 的服务。启动 .Net Core 的程序

这个时候,我们就可以通过服务器的80端口,访问我们的 .Net Core 程序了。   第四步、配置多个.net core的转发 如果你的服务器的nginx需要转发多个正在运行的 .Net Core 项目,可以通过在nginx的 /etc/nginx/conf.d/ 目录下,为每个项目建立一个转发的规则文件

这里的配置文件目录和文件格式 在 nginx.conf 中有指定。 进入目录后,新建一个文件

 

[…]

龙生   18 May 2020
View Details

ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置。

今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls。 让你了解ASP.NET Core Kestrel 的地址设置。 下面我们就来了解如何配置。我将介绍4种方式来配置Urls。 1、UseUrls方法 大家最熟悉的一种也就是使用UseUrls 。下面我们就来实际使用。 UseUrls 方法可以使用多个地址,也可以使用一个地址。 单个网址  UseUrls("http://localhost:5001") 多个网址 UseUrls("http://localhost:5001", "http://localhost:5002", "http://*:5003") //多个地址 *代表绑定所有本机地址 可以局域网访问,拥有外网ip 就可以外网访问   2、配置文件 下面使用配置文件来设置网址。 1).首先在项目中添加一个ASP.NET 配置文件hosting.json,在配置文件中加入server.urls 节点。 { "server.urls": "http://localhost:5001;http://localhost:5002;http://*:5003"} 2).这里首先需要添加两个引用 "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0" "Microsoft.Extensions.Configuration.Json": "1.0.0" 3).Main方法添加配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public static void Main(string[] args) { var config = new ConfigurationBuilder()     .SetBasePath(Directory.GetCurrentDirectory())     // 这里添加配置文件     .AddJsonFile(Path.Combine("config", "hosting.json"), true)     .Build(); var host = new WebHostBuilder()     .UseKestrel()     // 添加配置     .UseConfiguration(config)     .UseContentRoot(Directory.GetCurrentDirectory())     .UseIISIntegration()     .UseStartup<Startup>()     .Build(); host.Run(); } 4).最后别忘了在project.json中添加输出配置,直接把整个config目录放进去了 1 2 3 4 5 6 7 8 […]

龙生   14 Apr 2020
View Details

.Net Core 2.2 项目部署到IIS

1、安装IIS所需的Host扩展 从官网(https://dotnet.microsoft.com/download/dotnet-core/2.2)下载对应的.net core版本的Runtime 里面有一个Runtime & Hosting Bundle,是IIS需要的模块扩展,用来处理Core相关的请求。 下载举例:https://dotnet.microsoft.com/download/thank-you/dotnet-runtime-2.2.5-windows-hosting-bundle-installer 2、安装模块拓展,并且查看IIS模块列表是否生效 注意,.Net Core 2.0之后的模块名叫AspNetCoreModuleV2,之前的模块名叫AspNetCoreModule,可以共存。 3、导出您的.Net Core项目到本地某文件夹位置。 3.1 主项目右键,点击“发布”。 3.2 发布目标,选“文件夹”,选择你想要的本地目录,用来存放这个Site所有的文件。 3.3 点击“发布”,成功生成项目发布文件。 这里注意处理下数据库,比如你的Sqllite数据库,是否已经完成复制过去,记得单独检查一下。 4、IIS中添加对应的网站,相关端口、IP可根据需要配置,或保持默认即可。 网站物理路径,选择刚才导出发布所在文件夹即可。 5、浏览网站即可访问。 如果出现500之类的错误,一方面检查之前的模块是否安装到位,一方面检查下数据库等文件和配置是否配置正确即可。 6、部分网络教程会提示,要把应用程序池改成未托管,不过经过实践,2.2版本不需要配置也可以正常运行,如果想配置的,找到Site对应的应用程序池,改成无托管代码即可。   from:https://www.cnblogs.com/craigtaylor/p/11143484.html

龙生   14 Apr 2020
View Details
1 7 8 9 17