.NET core2.0 发布至IIS中

 

 

.NET CORE和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是否存在windows

 

进入这个模块就能够看到你是否安装了托管捆绑包AspNetCoreModule,没有的话能够点击这里进行下载,浏览器

若是仍是没有找到或者不知道怎样下载.在个人百度网盘中下载安装就好了,密码:nrt2服务器

安装好了以后就是这个样子mvc

 

 接下来和asp.net 发布时同样,新建一个网站就好了,为了方便演示,名称这里用DotNetCoreDemo,路径用一个方便寻找的路径asp.net

 

接着就是重点了,应用程序池配置稍微不太同样,.NET CLR版本选择无托管代码,托管管道模式选择集成网站

 

 

 好了,准备工做完成了,接下来就是文件的发布了,发布文件有两种方式,能够经过命令发布,也能够经过VS进行发布spa

 经过CMD找到你的文件所在的路径,这里就简单经过命令建立一个.net core2.0 的MVC的程序DotNetCoreDemo.net

建立命令: dotnet new mvc3d

       

  

 

   接着经过命令dotnet publish进行发布( 在项目的目录路径),若是用这个命令他会默认发布在bin文件的Debug中代理

 

 

这个不是咱们想要的,咱们必须发布到指定路径,刚才咱们IIS发布选择的物理路径路径是在  E:\发布\DotNetCoreDemo  这里因此,咱们发布的时候必须指定路劲

 命令: dotnet publish -o 路径

这里就是 dotnet publish -o E:\发布\DotNetCoreDemo

好了如今就发布好了

 

经过VS进行发布:

  这个就和之前的ASP.NET 发布差很少了,我如今用的是VS2017,发布的时候直接选择文件夹就能够了,路径就选择IIS配置的物理路径

  

 

终于完成了,来看一下最后的成果

 

 

PS:

AspNetCoreModule必定和NET CORE 版本相对应,我这里用的..NET CORE2.0 ,因此捆绑程序包(.NET Core Windows Server Hosting)也用的2.0,若是版本不对应则会报错502.5的错误

相关文章
相关标签/搜索