可以通过控制台但不能通过 IIS 托管 ASP.NET 核心站点
Can host ASP.NET Core site through console but not through IIS
解决方案和服务器配置:
我开发了一个相当简单的 ASP.NET 核心应用程序。它由一个核心项目文件组成,于 Visual Studio 2017 年创建和构建。目标框架是 .NETCoreApp 1.1
,平台目标是 x64
.
它还包含两个 class 库项目,目标框架 .NETStandard 1.4
和平台目标 x64
。
由于 VS2017 的 Web 部署中的错误,我正在发布到文件系统,然后使用 FTP.
将 PublishOutput
的内容复制到我的 IIS 应用程序目录
我的服务器是 Windows Server 2012 R2,带有所有相关的服务包和更新。已安装 DotNet Core 运行时。
问题:
当我在浏览器中导航到我的站点 URL 时,我遇到一个乏味的 HTML 页面,它指示以下内容:
HTTP Error 502.5 - Process Failure
Common causes of this issue: (lists things)
Troubleshooting steps: (lists things)
For more information visit http://go.microsoft.com/fwlink/?linkid=808681
采取的解决步骤:
不用说了,我已经按照说明解决了。 The link 给出的错误在 平台与 RID 冲突 .
标题下显示
事件查看器有一个错误条目,内容如下:
Application 'MACHINE/WEBROOT/APPHOST/MY SITE' with physical root 'C:\inetpub\wwwroot\mysite\' failed to start process with commandline "dotnet" .\MySite.dll', ErrorCode = '0x80070002 : 0.
通过在我的站点文件夹中打开 cmd.exe
的实例,我可以执行 dotnet mysite.dll
并且它运行,托管在 http://localhost:5000
上。正如预期的那样,我可以在浏览器中导航到该站点。
我的Program.cs
如下:
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
我的 Startup.cs
大部分都是无趣的。除了一些服务定义,我的管道是:
app.UseCookieAuthentication();
app.UseRedditMiddleware(); // authentication middleware, custom
app.UseMvc();
app.UseStaticFiles();
未设置 dotnet 文件夹的系统范围 %PATH%(IIS 以不同用户身份运行),或者您在安装 ASP.Net 核心服务器包后没有重新启动服务器。您可以在我的 post about running ASP.NET Core applications with IIS 中找到更多故障排除步骤。
解决方案和服务器配置:
我开发了一个相当简单的 ASP.NET 核心应用程序。它由一个核心项目文件组成,于 Visual Studio 2017 年创建和构建。目标框架是 .NETCoreApp 1.1
,平台目标是 x64
.
它还包含两个 class 库项目,目标框架 .NETStandard 1.4
和平台目标 x64
。
由于 VS2017 的 Web 部署中的错误,我正在发布到文件系统,然后使用 FTP.
将PublishOutput
的内容复制到我的 IIS 应用程序目录
我的服务器是 Windows Server 2012 R2,带有所有相关的服务包和更新。已安装 DotNet Core 运行时。
问题:
当我在浏览器中导航到我的站点 URL 时,我遇到一个乏味的 HTML 页面,它指示以下内容:
HTTP Error 502.5 - Process Failure
Common causes of this issue: (lists things)
Troubleshooting steps: (lists things)
For more information visit http://go.microsoft.com/fwlink/?linkid=808681
采取的解决步骤:
不用说了,我已经按照说明解决了。 The link 给出的错误在 平台与 RID 冲突 .
标题下显示事件查看器有一个错误条目,内容如下:
Application 'MACHINE/WEBROOT/APPHOST/MY SITE' with physical root 'C:\inetpub\wwwroot\mysite\' failed to start process with commandline "dotnet" .\MySite.dll', ErrorCode = '0x80070002 : 0.
通过在我的站点文件夹中打开 cmd.exe
的实例,我可以执行 dotnet mysite.dll
并且它运行,托管在 http://localhost:5000
上。正如预期的那样,我可以在浏览器中导航到该站点。
我的Program.cs
如下:
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
我的 Startup.cs
大部分都是无趣的。除了一些服务定义,我的管道是:
app.UseCookieAuthentication();
app.UseRedditMiddleware(); // authentication middleware, custom
app.UseMvc();
app.UseStaticFiles();
未设置 dotnet 文件夹的系统范围 %PATH%(IIS 以不同用户身份运行),或者您在安装 ASP.Net 核心服务器包后没有重新启动服务器。您可以在我的 post about running ASP.NET Core applications with IIS 中找到更多故障排除步骤。