一直在努力让这个工作,我有一个标准的.NET Core API,我想在远程IIS服务器上托管,问题是大多数教程是针对ASP.NET 5 / vNext并且不解释会发生什么一旦你运行你的dotnet publish
。我的绑定是正确的,但我不确定我是否指向正确的文件夹。
在我的输出文件夹中,我发布了wwwroot以及config.json
和其他一些json文件。当我将IIS指向wwwroot文件夹时,我得到:
502 - Web服务器在充当网关或代理服务器时收到无效响应。
如果我尝试将其指向任何其他文件夹,我会得到404s。我安装了HttpPlatformHandler 1.2。我的project.json
如下:
{
"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"
]
}
我为我的this sample采取了project.json
的元素。
我将IIS指向应用程序文件夹的根文件夹,而不是wwwroot,它工作正常。
在IIS上部署站点时,我在Windows 2012 R2服务器上面临同样的问题;糟糕的网关问题。是的,我使用的是.Net Core 2.0。在IIS上,我有应用程序池“No Managed Code”;管理的管道“集成”仍然有同样的问题。解决方案是在服务器上安装DotNetCore.2.0.0-WindowsHosting.exe并成功:)
什么对我有用:发布时为部署模式设置自包含。 qazxsw poi