原本迁移一个项目到.net core就是一件体力活,要找各类替代包,还有一些函数/属性的不支持web
总之很头疼...windows
不要问我为何用了.net core还要Host在IIS上,国内用.net的公司广泛都是Windows Server,一时半会儿估计是转换不过来了服务器
至于发布嘛,vs2017上的操做和其余版本的vs发布同样,发布完后文件夹里面文件从数量上就复杂多了函数
服务器环境:windows server 2008 r2spa
若是服务器没有外网,还得准备一个C++ 的安装包,官方的连接2015可再发行的版本404了.net
装一个2010的应该也没问题,目前没试过行不行,自行下载尝试代理
Microsoft Visual C++ 2010 Redistributable Package (x86)code
Microsoft Visual C++ 2010 Redistributable Package (x64)server
Host到IIS必备安装程序:DotNetCore.1.0.4_1.1.1-WindowsHosting.exeblog
地址:https://go.microsoft.com/fwlink/?linkid=844461
这个安装程序会自动安装一个1.0.4和1.1.1的.net core的Runtime
还有一个IIS的ASP.NET Core Module,提供IIS和Kestrel Server间的反向代理
装完以后呢,就跟之前发布web同样,建立应用程序池,拷贝文件到web目录下什么的
这里应用程序池.NET CLR版本要改成 无托管代码
改完后启动应用程序池,而后浏览网页
这里正常状况下会报个错502.5
用微软的东西,按照正常发布流程走下来,而后正常的,本身都以为不正常了
这个安装的ASP.NET Core Module启动的时候,运行了一个dotnet [你项目名字].dll的命令,若是这个命令运行正常,基本问题也不大了
因此我直接把cmd定位到web发布目录下,运行这个命令,这个应该是运行时版本问题
因此我直接在 https://www.microsoft.com/net/download/core#/runtime 下载了1.1.2版本的Runtime
而后重启电脑或者运行如下两个命令,按顺序运行
net stop was /y
net start w3svc
注意生产环境第一个命令会致使IIS服务关闭,慎重!
最后附上一个微软的官方说明地址
https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
若是以上问题恰好也是您遇到的,能帮助到你,请帮忙推荐一下吧!