Azure网站上的.NET CORE 3.1:500.37 ANCM无法在启动时间内启动

时间:2020-03-25 11:06:33

标签: azure asp.net-core iis .net-core azure-web-app-service

我有部署在Azure Web应用程序服务中的.NET Core 3.1 API。由于出现错误500.37 ANCM Failed to Start Within Startup Time Limit,在Azure中运行应用程序遇到了麻烦。我设法通过增加web.config中的startupTimeLimit来解决此问题(如下所示)。

但是现在,当我在Azure PAAS中运行2个实例时。其中一个实例工作正常,但另一个实例我仍然有相同的错误。

关于如何为IIS中的多个实例设置startupTimeLimit的任何想法?

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- To customize the asp.net core module uncomment and edit the following section. 
  For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Clients.Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" startupTimeLimit="180" hostingModel="inprocess" >
    </aspNetCore>
  </system.webServer>
</configuration>

编辑:

我使用了Azure Web应用Scale out (App Service plan)将正在运行的实例增加到2个。

3 个答案:

答案 0 :(得分:1)

我们通过将startupTimeLimit增加到300来解决了该解决方案

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location>
    <system.webServer>
      <aspNetCore xdt:Transform="SetAttributes(startupTimeLimit)" startupTimeLimit="300">
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

答案 1 :(得分:0)

Melchia,我遇到了同样的问题,我尝试了您的解决方案,但是当我在 web.config 中应用它时,我收到了 500 服务器错误。

我必须使用其他设置,以便我的 web.config 是:

/

我应该删除“位置”节点吗?还是我应该在我的 web.config 中添加其他内容?

答案 2 :(得分:0)

最后我能够修复这个错误。

这是一个配置错误(.net core 配置)。当 Azure 应用服务在 .net core 3.1 中时,需要对该项目进行额外的配置。 解决办法是:

  • 在项目文件(asp.net 或 web api 项目)(*.proj) 中,您必须在 TargetFramework 下方放置以下行:
<块引用>

<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>

最终的 *.proj 文件将是这样的:

<Project Sdk="Microsoft.NET.Sdk.Web">  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>        
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <UserSecretsId>my-secrets-go-here</UserSecretsId>
    <Version>1.1.0.0</Version>
    <Authors>me</Authors>
    <Company>TheCompany</Company>
    <Platforms>AnyCPU;x64</Platforms>
  </PropertyGroup>
  ...
</Project>

就是这样。在您的 Azure 应用服务上添加这些更改并上传新版本后,应用程序将无错误地执行(除非有其他与您的代码相关的内容)。

通过从本地直接在 IIS 上执行我的项目,我能够复制此错误,当您这样做时,VS 打开 Web 浏览器但从未加载网页。