且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-10-17 21:15:40


我该如何调试?有人有主意吗?


以下是三个想法:



  1. I'm trying to publish to IIS a .NET Core ASP.NET Website I upgraded from RC2 to RTM.

    As a sanity check, I was successfully able to publish the template/sample "ASP.NET Core Web Application (.NET Framework)" app from Visual Studio 2015.

    But for some reason, when publishing the RTM upgraded app, I'm getting HTTP Error 502.3 - Bad Gateway The specified CGI application encountered an error and the server terminated the process.

    The site DOES work running IIS Express from Visual Studio.

    How can I debug this? Anyone have any ideas?

    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"
        ]
      ]
     }
    }
    

    How can I debug this? Anyone have any ideas?

    Here are three ideas:

    1. Read this and make sure that you have covered all that it says.

    2. Run the published .\MyApp.exe from the command line. Does that work?

      • If it does, you know you have an IIS integration problem.
      • If it does not, you know you have an application problem.
    3. Change stdoutLogEnabled="false" to true and then check the logs at stdoutLogFile=".\logs\stdout". The error(s) there might tell you something.

    4. Check your IIS Application logs in the Event Viewer. The error(s) there might tell you something.

    Event Viewer Application Logs