.NET Core 发布到 IIS - HTTP 错误 502.3 - 错误网关 - 指定的 CGI 应用程序遇到错误,服务器终止了进程

标签 .net iis asp.net-core .net-core

我正在尝试将我从 RC2 升级到 RTM 的 .NET Core ASP.NET 网站发布到 IIS。

作为健全性检查,我成功地从 Visual Studio 2015 发布了模板/示例“ASP.NET Core Web 应用程序 (.NET Framework)”应用。

但由于某种原因,在发布 RTM 升级的应用程序时,我收到 HTTP 错误 502.3 - 错误网关 指定的 CGI 应用程序遇到错误,服务器终止了该进程。

该站点可以在 Visual Studio 中运行 IIS Express。

我该如何调试这个?大家有什么想法吗?

Error 502.3

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath=".\MyApp.exe" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

project.json

{
  "buildOptions": {
  "emitEntryPoint": true,
  "preserveCompilationContext": true,
  "warningsAsErrors": true
},
"dependencies": {
  "Microsoft.AspNetCore.Diagnostics.Elm": "0.1.0",
  "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
  "Microsoft.AspNetCore.Authorization": "1.0.0",
  "Microsoft.AspNetCore.Diagnostics": "1.0.0",
  "Microsoft.AspNetCore.Hosting": "1.0.0",
  "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
  "Microsoft.AspNetCore.Http.Extensions": "1.0.0",
  "Microsoft.AspNetCore.Localization": "1.0.0",
  "Microsoft.AspNetCore.Mvc": "1.0.0",
  "Microsoft.AspNetCore.Routing": "1.0.0",
  "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
  "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
  "Microsoft.AspNetCore.Session": "1.0.0",
  "Microsoft.AspNetCore.StaticFiles": "1.0.0",
  "Microsoft.Extensions.Caching.SqlServer": "1.0.0",
  "Microsoft.Extensions.Logging.Console": "1.0.0",
  "Microsoft.Extensions.Logging.Debug": "1.0.0",
  "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",

  "Microsoft.AspNetCore.Razor.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
  },

  "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
  "Microsoft.Extensions.Configuration.Json": "1.0.0",
  "Microsoft.Extensions.Logging": "1.0.0",
  "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
},

"frameworks": {
   "net461": {}
 },

"tools": {
  "BundlerMinifier.Core": "2.0.238",
  "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

"scripts": {
  "prepublish": [ "bower install", "dotnet bundle" ],
  "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
},

"publishOptions": {
  "include": [
    "wwwroot",
    "web.config",
    "appsettings.json",
    "**/*.cshtml",
    "Config/*.json"
    ]
  ]
 }
}

最佳答案

如果您长时间运行任务,并且网络浏览器在 2 分钟(默认请求时间)内未收到响应,您将收到此错误。因为超时后,IIS 会替换应用程序以“Bad Gateway”响应客户端。

也许您应该更改 web.config 中的请求时间。

system.webServer/aspNetCore 部分中设置 requestTimeout 属性,以指定 ASP.NET Core 模块等待监听 % 的进程响应的持续时间ASPNETCORE_PORT%。

  • requestTimeout 必须仅以整分钟指定,否则默认为 2 分钟。

就像这样:

<system.webServer>
  <aspNetCore requestTimeout="00:20:00" ... />
</system.webServer>

关于.NET Core 发布到 IIS - HTTP 错误 502.3 - 错误网关 - 指定的 CGI 应用程序遇到错误,服务器终止了进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756042/

相关文章:

asp.net - 填充使用 new 创建的 DbContext(EF7、ASP.NET 5、vnext)后,依赖项注入(inject) DbContext 为空

c# - 使用 Inno Setup 安装具有不同配置的同一 Windows 服务的多个实例

c# - 使 btn_Click 事件静态化

asp.net - 允许其他人使用 iframe 我的网站

iis - 经典 asp application_OnEnd 和 session_OnEnd 事件不起作用

Azure 备份,应用程序设置中的连接字符串是否会导致现有应用程序出现问题?

javascript - 如何访问 jquery 内部数据?

c# - 我应该为此使用线程吗?

.net - 发布网站: the resource cannot be found error

wcf - 使用.net core使现有的WCF服务在Linux上运行