踩坑日记与 Windows 服务器部署 asp.net core 指南。
准备
操作系统:Windows Server 2008 R2 或更高版本
文件:
- Microsoft Visual C++ 2015 Redistributable
- aspnetcore-runtime
- dotnet-hosting
后面这两个文件的下载地址:.NET download archives for Linux, macOS, and Windows
准备 asp.net core web 应用程序
Step1 使用 VS2017 建立 asp.net core web 应用程序。
Step2 发布。使用 “IIS,FTP” - “文件系统” 的发布方式,获取发布文件。
具体的操作,可参考这里:
使用 IIS 在 Windows 上托管 ASP.NET Core2.0 - Sundar - 博客园
Step3 IIS配置。在服务器上启用 IIS 服务,默认配置即可。
安装 asp.net core 运行环境
在服务器上分别安装
- Microsoft Visual C++ 2015 Redistributable
- aspnetcore-runtime
- dotnet-hosting
安装完成后,重启系统,或从命令提示符处依次执行 net stop was /y
和 net start w3svc
。
重新启动 IIS 将选取安装程序对系统 PATH 所作的更改。
安装 asp.net core 运行环境必须在配置好 IIS 之后进行。
在 IIS 中添加网站
无特殊配置,需要注意的是,将应用程序池中对应的项修改为 无托管代码 。
以上所有操作都可以参考 使用 IIS 在 Windows 上托管 ASP.NET Core2.0 - Sundar - 博客园 这篇博文,写得很清晰。
重点:可能会遇到的问题
500.19
原因:安装 dotnet-hosting 在添加 IIS 之前,或者安装完成之后,没有进行重启。
解决方案:重新安装 dotnet-hosting ,选择修复选项。然后重启服务器。
502.5
原因:asp.net 所需运行环境不够。
解决:
方案1: 安装 SDK 。 但这种方案没有在我这里生效,安装姿势不对?
方案2: 在 asp.net 项目的 csproj 文件中添加
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
然后重新发布,会发现发布文件里面多了很多依赖项,更新服务器端的文件,重启网站,应该就可以大功告成了。
简单的事情,一定有简单的解决方案,对于部署 asp.net core 这种应该很标准化的操作,如果遇到问题需要很复杂,看起来就很奇奇怪怪的方案,那很可能是方向错了。
之前就踩过坑,尝试采用安装重定向等等奇怪的方法。
参考资料:
- 使用 IIS 在 Windows 上托管 ASP.NET Core2.0 - Sundar - 博客园
- ASP.NET Core 2.0 Preview 2 on IIS error 502.5 - Stack Overflow
- Host ASP.NET Core on Windows with IIS | Microsoft Docs
- 使用 IIS 在 Windows 上托管 ASP.NET Core | Microsoft Docs
原文链接:https://www.cnblogs.com/jasongrass/p/10645606.html
END