繁体   English   中英

.NET 核心托管到 IIS,我收到 HTTP 错误 500.30 - ANCM 进程内启动失败

[英].NET Core hosting to IIS, I get HTTP Error 500.30 - ANCM In-Process Start Failure

将 .NET 核心部署到 IIS 时出现问题。 我按照以下步骤操作:

  1. 使用 .NET Core 3.1 和 Visual Studio 创建了一个网站
  2. 在 IIS 中创建了网站(指向一个空的物理路径 C:\inetpub\mywebsite 和地址 mywebsite.core.com)
  3. 将我的网站从 Visual Studio 发布到同一文件夹 C:\inetpub\mywebsite
  4. 从浏览器浏览的主机条目,例如转到 drivers\etc\hosts 并添加行 127.0.0.1 mywebsite.core.com
  5. 从这里安装的包: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 启动我的网站时,它曾经直接打开到 swagger 链接,但现在在发布到 IIS 后,我无法再从 Visual Studio 启动它(无法连接到网络服务器 IISExpress)...有什么帮助吗?

这是一个 .NET Core 3.1 控制台应用程序,在我尝试发布到 IIS 之前,它使用我的 API 打开了 swagger。

稍后编辑: https://docs.microsoft.com/en-us/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-3.1这表明两个可能的原因:缺乏对密钥保管库的权限(不是问题,我使用 azure cli 登录 Azure; 另一个是:“由于针对不存在的 ASP.NET 核心共享框架版本,应用程序配置错误。检查目标计算机上安装了哪些版本的 ASP.NET 核心共享框架。”

稍后编辑: 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" inprocess" 更改为: hostingModel="outofprocess"

我的项目 > 属性 > 调试看起来像这样:

在此处输入图像描述

(如您所见,我从 In Process 更改为 Out of Process)

IIS 中的绑定如下所示: 在此处输入图像描述

更新:在这一切之后,我的错误变为:

HTTP 错误 502.5 - ANCM 进程外启动失败 此问题的常见解决方案: 应用程序进程无法启动 应用程序进程启动但随后停止 应用程序进程启动但未能侦听配置的端口

(最初是 500.30)

不太确定还能尝试什么。 如何检查端口是否配置正确?

尝试关注这篇文章。
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/development-time-iis-support?view=aspnetcore-3.1

如果它不起作用 - 请确保在 IIS 中为您的 web 应用程序启用了您的应用程序池。 也尝试重新启动 IIS。

通过 Kestrel 方式调试

请尝试将您的应用程序发布到特定文件夹。 用于发布的 Dotnet Core Cli 命令。 下面的命令发布到“输出”文件夹

 dotnet publish -o output

通过cd命令移动到publish文件夹后。 键入dotnet <project-name>.dll 使用您的项目名称而不是<project-name>

您的应用程序应该正在运行,并且应该可以正常运行。 如果您遇到任何问题,那是由于应用程序错误

部署到 IIS

之后将您的应用程序托管到生产或登台,安装 IIS(非特快)和 .NET 核心托管包。[单击此处下载托管包]

之后,您可以按照本指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM