第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用。
本教程涵盖以下主题:
在 Windows Server 上安装.NET Core Hosting Bundle。
在 IIS 管理器中创建 IIS 站点。
部署 ASP.NET Core 应用。
我概况一下,主要是安装2个文件:
1、安装. NET Core SDK安装在开发计算机上(dotnet-sdk-3.1.100-win-x64.exe)
下载地址:https://dotnet.microsoft.com/download。选择Download .NET Core SDK这个版本进行安装就可以。
2、安装 .NET Core 托管捆绑包(dotnet-hosting-3.1.0.exe)。使用以下链接下载安装程序:
下载地址:当前 .NET Core 托管捆绑包安装程序(直接下载)https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
3、安装 Web Platform Installer。(这一步可以省略,我见.net core 2.0版本有人装这个,我的windows10安装了,windows Server服务器没有装 )。
下载地址:https://www.microsoft.com/web/downloads/platform.aspx
4、重启电脑,或者在命令行执行以下命令(我建议以下命令执行完后重启电脑吧)。
重启服务器或在命令行界面中执行 net stop was /y,后跟 net start w3svc 。
第二部分:关于发布、部署到iis的一些配置:
1. 关于visual studio 2019发布.net core 3.0时一些配置
发布-步骤1:选取发布目标:选择文件夹,然后点击高级:
发布-步骤2:目标框架:netcoreapp3.0, 部署模式:框架依赖,目标运行时:选择可移植。然后保存。
注意: 这里要重点说明:这里的目标运行时:win-x64或者win-x86 是你第一步,安装.net core sdk的运行时版本。并不是你操作系统的版本
我们在第一部介绍时,就直接选择的是64位按照包,所以这个文章所有截图中都是选择64位运行时版本。
发布-步骤3:点击发布按钮,就发布完成。
2.部署到iis 。
建议查看官方文档:将 ASP.NET Core 应用发布到 IIS ,https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio。
这里截图列一下我的关键配置:
1.应用程序池,选择无托管模式。我电脑是64位,选择“启用32位应用程序”为“false”。
iis进程高级选项中,修改进程模块的“标识”,使用有管理员角色的账号登录。如果不使用管理员权限账号,我这里会报500.0 - ANCM In-Process Handler Load Failure。所以一定要改。
2.权限配置:选择【网站】》选中【要更改的网站】,点击【基本设置】,弹出如下对话框。点击【连接为】,路径凭据中选择【特定用户】,点设置,输入管理员账号和密码。
第三部分:使用 IIS 在 Windows 上托管 ASP.NET Core 问题太多:
官方文档https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-3.1#iis-configuration 官方文档。
我部署过程中遇到的问题:如下
HTTP Error 500.0 - ANCM In-Process Handler Load Failure
Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect
For more information visit:https://go.microsoft.com/fwlink/?LinkID=2028526
下图:
部署后出现的以上错误的原因可能有以下几点:
1、没有安装第一部分中的前2个安装包:.net core sdk(.net core sdk) 和 dotnet-hosting( .NET Core 托管捆绑包)
2、发布或者部署时运行时版本没有选择正确。现在一般都是64位。注意详细的配置。
3、部署后给iis和应用程序池的权限不够。分别给iis网站和应用程序池,分管理员用户权限。
其他参考:
Windows平台部署Asp.Net Core应用(基于IIS和Windows服务两种模式) :https://blog.csdn.net/weixin_33757609/article/details/93693395。