json文件中的ASP.NET CORE settimeout

时间:2017-08-22 09:27:55

标签: asp.net json asp.net-core

我从我的asp.net核心应用程序[长请求]和答案中得到502.3错误:Timeouts with long running ASP.NET MVC Core Controller HTTPPost MethodRequest timeout from ASP.NET Core app on IIS 我看到我需要延长超时但每个答案都包含webconfig xml文件中的设置超时,并且我使用json文件进行配置。

    {
  "AppConfig": {
    "Name": "...",
    "ConnectionString": "Server=localhost;User Id=root;Password=....;Database=....",
  }

我还有一个launchSettings.json

    {
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53573/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "SPS.Services": {
      "commandName": "Project"
    }
  }
}

如何从xml:

看起来像
   <system.webServer>
     <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
        </handlers>
        <aspNetCore requestTimeout="00:20:00"  processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
    </system.webServer>

我应该把它放在哪里?

我正在使用AspNetCore 1.1.2

2 个答案:

答案 0 :(得分:0)

如果您在IIS后面运行您的应用程序(根据launchSettings执行),那么您必须确保链中的所有项目(IIS,IIS / AspNetCore模块中调用Kestrel和Kestrel本身)不会长时间运行请求。

Kestrel做not have any request timeouts,无需配置。

为了配置与IIS相关的东西,你仍然应该使用web.config,因为IIS对你的json文件一无所知。因此,您可以使用自己提供的链接创建和修改web.config文件。

答案 1 :(得分:0)

我遇到了同样的问题,解决问题的唯一方法是为我的应用程序创建一个web.config文件。所以我现在有appsettings.json加上web.config。