net core项目发布到iis
需要的环境
dotnet-sdk: 就是net core运行的环境
dotnet-hosting:这个完整后,iis会出现一个模块,负责转发请求到真正的Kestrel服务器
这两个去官网下载即可,下载地址:https://dotnet.microsoft.com/download/dotnet-core
注意是下载Hosting Bundle这个哦,不是x64也不是那个x86哟。
安装过程中:
安装好dotnet-hosting可以看看有没有对应的模块
点击模块进去然后看看
这里有两个一个是v2,这个版本是net core2.0后需要使用的。发布的时候一定要注意版本一致,不然会出现很多问题
强行解释一波:
ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中。
中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已
生成发布的文件的方法和net framework基本是一样的
点击发布选择文件夹
然后就会出现下面的界面,有发布的位置默认是bin下面的,使用默认的就好
发布后放到拷贝到服务器,然后和以前发布到iis的一样。
然后把应用程序池修改为无托管代码
这个时候如果你的net core环境都正确的话就可以正常运行了
当然一般情况下都没有那么顺利,可以参考:net core发布到IIS常见错误