欢迎光临
我们一直在努力

IIS发布.NETCore应用程序

概述

与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,

IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,

配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,

请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。

部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块

安装 最新的 Runtime & Hosting Bundle  会自动安装ASP.NET Core Module v2

安装完成后通过在IIS管理台上通过 模块按钮查看,如下图

 

 

 

 

 

 

 

 

发布IIS 

 

 修改对应的程序池 为 ”无托管代码“。

 

 

接下来重启服务器;

web.config详解

vs发布后的站点文件夹下会带有一个web.config文件。文件格式如下:

<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\WebStudy.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration> <!--ProjectGuid: c0312efc-432d-4ccc-af6d-cf9081c3e31e-->

上面的handlers节点下包含名称aspNetCore,modules=“AspNetCoreModule
”的节点。意思即对应IIS下的AspNetCoreModule HttpModule。 这里不要对其进行改动,保持默认配置即可。
下面的aspNetCore节点内的processPath意思表示该站点需在IIS工作进程内托管,这种模式称之为进程内托管模型。在进程内托管时,该模块会使用 IIS 进程内服务器实现,即 IIS HTTP 服务器 (IISHttpServer)。在IIS托管下使用进程内托管模式比进程外托管模式性能更强

stdoutLogEnabled属性表示是否开启日志(建议开启),
stdoutLogFile属性表示日志输出目录。

 

https://www.jianshu.com/p/a03c67feb0bd

 

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:IIS发布.NETCore应用程序
文章链接:https://www.jmwz.net/1552.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址