美文网首页
初识.net core-发布到IIS

初识.net core-发布到IIS

作者: 黄林军 | 来源:发表于2018-07-08 14:01 被阅读0次

    简述、与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。

    一、检查安装AspNetCoreModule托管模块

    发布前首先查找IIS-模块下是否已经安装AspNetCoreModule托管模块,如果没有下载安装合适版本的 Windows Server Hosting

    二、发布项目

    1、在已有的.Net Core项目上-右键发布-创建新配置文件-选择IIS、FTP-发布

    2、发布文件如下

    三、 在IIS中添加网站

    1、添加网站-填写名称、端口,并将路径指向你刚才发布的文件夹,然后启动网站即可

    2、应用程序池里找到对应的程序池-将.NET CLR版本为“无托管代码”

    3、按照如上配置、一个.NetCore的IIS环境就搭建完成,下面开始正式浏览

    然后检查日志信息 报错:System.Data.SqlClient.SqlException (0x80131904): 用户 'sa' 登录失败。

    于是我一通查找appsettings.json的连接字符串,发现没错呀!然后用sa登录sqlserver 也可以呀,对应查找了数据库中sa的权限组,发现还是没错啊,可是怎么就报这个sa登录失败呢?

    最后发现 除了appsettings.json外下面还有两个连接配置文件,如下

    于是把appsettings.json里面的连接字符串贴到appsettings.production.json和appsettings.Staging.json里面-重新启动-继续浏览-继续报错:System.Data.SqlClient.SqlException (0x80131904): 无法打开登录所请求的数据库 "EHS_LawQuery"。登录失败。用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。

    已经看到错误改变了,这时候找到三个连接字符串里面的Trusted_Connection=True;后去掉这个验证-重新启动-浏览-又有另一个错误:用户‘IIS APPPOOL\LawQuery’ 登录失败

    我们找到应用程序池-高级设置-将标识里面的内置账户设置为NetWorkService

    最后重新启动-继续浏览

    OK 终于大功告成!

    相关文章

      网友评论

          本文标题:初识.net core-发布到IIS

          本文链接:https://www.haomeiwen.com/subject/sjmnuftx.html