淘先锋技术网

首页 1 2 3 4 5 6 7

         近期由于工作原因,需要发布.net core框架下的webapi到IIS上。遭遇了一番蹂躏,特此记下,以备后面使用。

首先工作中有2个服务。一个是identityserver4的服务,负责token的发放,一个是我们的业务webApi。

当客户需要调用我们的webapi时,要先到identityserver4上去申请一个token。然后使用这个token来访问我们的webapi。


      授权服务器identityserver4,是开源的。在git上可以直接获得。是基于.net core 开发的。我用的是基于.net core 1.0的。

下面它的部署就登场了。建议使用微软提供的文档。文档地址

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

文档最后面有常见问题Common errors 和解决方式 Troubleshooting。  

    由于服务器是server2012 ,所用的iis版本为8.5.支持 本身支持 .net 4.5


1.安装iis webserver

2  安装 .net core windows server hosting bundle

   注意安装完毕之后,重启服务器,或者执行 net stop was /y followed by net start w3svc from a command prompt to pick up a change to the system PATH

否则,会报 

  • 502.3 Bad Gateway - There was a connection error while trying to route the request

虽然在文档中的troubleshooting里提到,但是根据那个解决不了问题。还是得靠重启。 或者那个命令。

3  安装.net core  运行时库,我安装的.net core sdk

在cmd里面运行 dotnet可以验证安装是否正确。

4 将vs里发布的包,放入iis里,很普通的网站发布一样。

但是应用程序池 里 .net 框架 要选择 无托管代码。


第二个 webapi的发布和一般的mvc的web发布一样。

5 如果报 500 内部错误或者webapi没有正确 记录日志,请查看日志的配置,以及iisuser对文件夹的权限。

这和其他网站发布没有区别。