【发布时间】:2020-10-11 06:06:19
【问题描述】:
将 .NET Core 部署到 IIS 时出现问题。 我按照以下步骤操作:
- 使用 .NET Core 3.1 和 Visual Studio 创建了一个网站
- 在 IIS 中创建了网站(指向一个空的物理路径 C:\inetpub\mywebsite 和地址 mywebsite.core.com)
- 将我的网站从 Visual Studio 发布到同一文件夹 C:\inetpub\mywebsite
- 从浏览器浏览的主机条目,例如去驱动程序\等\主机并添加行 127.0.0.1 mywebsite.core.com
- 从这里安装的包:https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.1.5-windows-hosting-bundle-installer
错误是:
HTTP 错误 500.30 - ANCM 进程中启动失败常见解决方案 此问题:应用程序无法启动应用程序已启动 但随后停止应用程序启动但在期间抛出异常 启动故障排除步骤:检查系统事件日志是否有错误 消息 启用记录应用程序进程的标准输出消息 将调试器附加到应用程序进程并检查更多 信息访问:https://go.microsoft.com/fwlink/?LinkID=2028265
我感觉这可能与我的 launchSettings.json 文件有关,不知道应该如何调整它...
当我从 Visual Studio 启动我的网站时,它曾经直接打开一个招摇链接,但现在发布到 IIS 后,我无法再从 Visual Studio 启动它(无法连接到网络服务器 IISExpress)... 有什么帮助吗?
这是一个 .NET Core 3.1 控制台应用程序,在我尝试发布到 IIS 之前,它使用我的 API 打开了一个招摇。
后期编辑: https://docs.microsoft.com/en-us/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-3.1 这表明了两个可能的原因:缺少对密钥库的权限(不是问题,我使用 azure cli 登录 Azure);另一个是:“由于针对不存在的 ASP.NET Core 共享框架版本,应用程序配置错误。请检查目标计算机上安装了哪些版本的 ASP.NET Core 共享框架。”
后期编辑: C:\inetpub\mywebsite 中的 web.config 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\XXX.MyWebsite.Api.RestApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="outofprocess" />
</system.webServer>
</location>
</configuration>
我居然把hostingModel="inprocess"改成了:hostingModel="outofprocess"
我的项目 > 属性 > 调试看起来像这样:
(如您所见,我从 In Process 更改为 Out of Process)
更新:在这一切之后,我的错误变为:
HTTP 错误 502.5 - ANCM 进程外启动失败常见 此问题的解决方法:应用程序启动失败 应用程序进程已启动但随后停止 应用程序进程 已启动但未能侦听配置的端口
(最初是 500.30)
不太确定还能尝试什么。如何检查端口是否配置正确?
【问题讨论】:
-
重新 keyvault 权限:你有访问权限,但是应用程序池在 IIS 中运行的用户是什么?
-
您可以通过将 web.config 上的 stdoutLogEnabled 设置为 true 来检查错误日志,并让我们知道您遇到了什么错误。您将在发布文件夹的日志文件夹中看到日志文件。可能是证书问题。
-
如果服务器安装了 .NET Core 2.2,请检查以确保它具有 2.2 的最新更新。 2.2.1 中有一个错误(我认为,不要引用我的话)导致此错误。您认为安装 3 或 3.1 会减轻这种情况,但事实并非如此。如果这是您的问题,您也可以发布为独立的以使其正常工作。
-
运行一些基本诊断以首先排除常见错误,docs.jexusmanager.com/tutorials/ancm-diagnostics.html 如果问题仍然存在,请编辑您的问题以包含报告。