起因:
前一阶段运行的好好的.NET CORE 网站(.NET CORE 2.0.6)
突然一次编译部署后不能运行了,网页报 http error 502.5
过程:
页面上建议我查看日志。
我感觉是不是这次编译带了什么新的库,而服务器上老的RUMTIME 库没有?
所以先到微软官网下载了.NET CORE HOSTING BUNDLE 2.1.0 安装。
安装好发现任然报错。
于是打开WINDOWS日志,查看错误。发现IIS 报.NET CORE 启动网站.DLL 失败。
于是手动从CMD里 运行 “DOTNET 网站.DLL”
然后报错,终于找到原因了,本地 NET CORE RUNTIME缺少清单里的某个库(微软的一个INSIGHT什么库。)
由于这个项目2个人做的,可能是别人(或者是我不小心)引用了。网上搜索下这个库,发现这个库是用于AZURE部署用的。对于我没用,所以打算删了,所以在VS全局搜索。结果没搜到,想了想,干脆在服务器RUMTIME里安装上这个库吧。不过在搜索这个库的时候,发现了另一个办法。因为我开发调试的时候是能够运行的,所以开发环境有这个库。所以理论上,我只要在打包发布的时候,带上这个库不就可以了(因为服务器会变,所以在服务器上安装比较烦,重新部署的时候还要记得安装这个东西)。
最终解决方法:
用编辑器,打开项目.csproj。
在PropertyGroup节点下添加PublishWithAspNetCoreTargetManifest子节点,值为false.
在打包发布下,就会发现对了好多库文件。复制到服务器IIS目录后,网页就能正常显示了。