【转】.NetCore程序发布到IIS上面

 原文地址:https://www.cnblogs.com/dotnet261010/p/10174904.html

一、概述
在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。在这过程中,最重要的角色便是AspNetCoreModule(.net core 2.0以上版本中是AspNetCoreModuleV2),它是IIS中的一个模块,HTTP请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中。因为IIS只是作为反向代理负责转发请求,不负责监听HTTP请求端口,所以不需要使用应用程序池来托管我们的代码。

1、查看是否安装AspNetCoreModule
在IIS中选中主页,然后选择功能视图里面的模块,如下图所示:

双击进入模块,查看是否安装,如下图所示:

注意:

如果没有AspNetCoreModule,需要去微软网站下载.net core Runtime,网址:

(注意netcore的版本,如果3.X的需要下载3的运行时)

https://dotnet.microsoft.com/download

 

 

下载.NET Core runtime

(如果是新安装需要重启服务:
输入 net stop iisadmin /y 回车停止IIS;
再输入 net start iisadmin 回车启动IIS;
再输入 net start w3svc 回车WEB服务。)

二、发布项目
这里选择发布到文件系统。
1、在要发布的项目上面右键选择发布,如下图所示:

 

4、发布

点击高级里面的保存,然后点击发布按钮,开始发布程序,出现如下图所示的界面表示发布完成。

三、在IIS中添加网站
1、添加网站
在IIS中添加一个网站,设置网站名称,并将网站的物理路径指向刚才程序发布的文件夹,如下图所示:

2、设置应用程序池
在前面的概述中已经说过:IIS在这里只是作为反向代理,不负责托管代码,所以要把应用程序池的.NET CLR版本设置成“无托管代码”,如下图所示:

3、浏览网站
在.NET Framework编写的ASP.NET项目中,选中左侧的网站,然后点击右侧的浏览,即可浏览网站,(如果直接浏览访问不了就输入完整地址访问)

 注意2.0以上的版本需要模块

 

posted @ 2019-04-28 11:20  花影疏帘  阅读(166)  评论(0)    收藏  举报