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

时间:2020-06-21 09:00:04

标签: c# iis .net-core hosting

将.NET Core部署到IIS的问题。 我按照以下步骤操作:

  1. 使用.NET Core 3.1和Visual Studio创建网站
  2. 在IIS中创建的网站(指向空的物理路径C:\ inetpub \ mywebsite并地址mywebsite.core.com)
  3. 将我的网站从Visual Studio发布到同一文件夹C:\ inetpub \ mywebsite
  4. 要从浏览器浏览的主机条目,例如去驱动程序\ etc \主机并添加行 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启动站点时,它曾经直接打开一个摇摇欲坠的链接,但是现在发布到IIS之后,我无法再从Visual Studio启动它(无法连接到Web服务器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共享框架。” < / p>

后来编辑: 来自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"

我的项目>属性>调试如下:

enter image description here

(如您所见,我从“处理中”更改为“处理中”)

,IIS中的绑定如下所示: enter image description here

更新:所有这些之后,我的错误更改为:

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

(最初是500.30)

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

2 个答案:

答案 0 :(得分:0)

尝试遵循本文。
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/development-time-iis-support?view=aspnetcore-3.1

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

答案 1 :(得分:0)

通过红est方式调试

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

 dotnet publish -o output

通过publish命令移至cd文件夹后。输入dotnet <project-name>.dll。使用您的项目名称代替<project-name>

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

部署到IIS

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

之后,您可以按照此guide