我从我的asp.net核心应用程序[长请求]和答案中得到502.3错误:Timeouts with long running ASP.NET MVC Core Controller HTTPPost Method 和Request 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
答案 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。