简体   繁体   中英

Unable to deploy ASP.NET Core app to IIS - Bad Gateway

Have been struggling to get this to work, I have a standard .NET Core API that I want to host on a remote IIS server, the issue is most of the tutorials are for ASP.NET 5/vNext and don't explain what happens once you run your dotnet publish . My bindings are correct but I'm not sure if i'm pointing at the right folder.

In my output folder I have publish and wwwroot as well as config.json and some other json files. When I point IIS to the wwwroot folder I get:

502 - Web server received an invalid response while acting as a gateway or proxy server.

I get 404s if I try point it to any other folder. I have HttpPlatformHandler 1.2 installed. My project.json is as follows:

  {
  "compilationOptions": {
    "debugType": "portable",
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "publishOptions": {
    "include": [
      "wwwroot"
    ]
  },

  "dependencies": {
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-*",
    "Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0-*",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-*",
    "Microsoft.AspNetCore.Hosting": "1.0.0-*",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-*",
    "Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-*",
    "Microsoft.AspNetCore.Mvc": "1.0.0-*",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-*",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-*",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-*",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-*",
    "Microsoft.Extensions.Logging.Console": "1.0.0-*",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-*",
    "OpenIddict.Core": "1.0.0-*",
    "OpenIddict.EF": "1.0.0-*",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002700"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "portable-net45+wp80+win8+wpa81+dnxcore50",
        "portable-net451+win8"
      ]
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-*",
      "imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
    }
  },

  "scripts": {
    "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
  },

  "content": [
    "wwwroot",
    "config.json",
    "web.config"
  ],

  "exclude": [
    "wwwroot",
    "node_modules"
  ],

  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

I took elements of this sample for my project.json .

I pointed IIS to the root folder to the application folder and NOT the wwwroot and it worked.

The IIS server needs to have DotNetCore.1.0.0.RC2-WindowsHosting.exe

Your Physical path in IIS should point to the wwwroot folder from your publish output.

在此处输入图片说明

The approot folder also needs to be placed in the same dir as the wwwroot folder.

I've found it helpful to try running web.cmd in the approot folder and seeing if it'll start. It's easier to see the startup exceptions (if there are any) when running web.cmd. You can also change the stdoutLogEnabled flag in the wwwroot/web.config file to true to get any startup exceptions from IIS.

Finally, on at least one occasion, after hitting my head against a wall for an hour trying to get it working, I rebooted my IIS server and suddenly it was working correctly. Obviously a last resort if it's a prod server

I face the same issue on Windows 2012 R2 server when I deploy site on IIS; bad gateway issue. Yes, I was using .Net Core 2.0. On IIS I had application pool "No Managed Code"; Managed pipeline "Integrated" and still had the same issue. Solution was install DotNetCore.2.0.0-WindowsHosting.exe on server and success :)

What worked for me: when publishing to set Seld-Contained for Deployment Mode. 在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM