使用iis反向代理.net core应用程序

  .net core 其实是自宿主性质的web应用程序,而不再是web网站,所以.net core是可以直接单独作为系统服务部署。但是实际情况中,为了同个一个端口能支持多个web应用和统一管理,还是应该与某个服务器整合,比如iis,Jexus。所以.net core 不再是由iis工作进程进行托管,而是使用自托管Web服务器(Kestrel)。iis则是作为反向代理的角色,将请求转发到Kestrel。在这里面最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已。

  部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?tabs=aspnetcore2x根据core版本,选择相应包下载安装.

  发布程序,并部署网站,这一步和传统web网站没有什么不同。

  设置应用程序池的.NET CLR版本为“无托管代码”,因为刚才也说了,IIS是作为一个反向代理的角色,并不需要它来托管代码

  

  (PS 图片借用园友图,侵删)

  


具体信息可参考官方文档 https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

 

posted @ 2017-08-27 22:19  木~木  阅读(2443)  评论(0编辑  收藏  举报