.NET Core 2.0 Azure Web App。指定的CGI应用程序遇到错误,服务器终止了进程

时间:2017-12-03 17:46:11

标签: c# asp.net azure asp.net-core azure-web-sites

我的应用程序在本地运行良好但我在Azure Web App上部署时遇到错误:

The specified CGI application encountered an error and the server terminated the process.

我的应用是.NET Core 2.0 Web API,没有wwwroot文件夹。我检查了this question,解决方法对我不起作用,而且它是关于不同的.NET Core版本。我的应用程序从字节数组创建X509Certificate2的实例,我很确定它在这里失败了。我需要动态管理X509Certificates - 不能将证书上传到Web App。

我也在Microsoft Docs中找到了这个:

  

早期Kestrel版本的已知问题可能会导致ASP.NET   在App Service中托管的Core 1.0应用程序间歇性停止   响应。您还可能会看到此消息:“指定的CGI   应用程序遇到错误,服务器终止了   过程。“

     

此问题已在Kestrel 1.0.2版中修复。这个版本   包含在ASP.NET Core 1.0.3更新中。要解决此问题,   确保您更新应用程序依赖项以使用Kestrel 1.0.2。   或者,您可以使用描述的两种解决方法之一   在博客文章中,在App Service Web中发布了ASP.NET Core 1.0慢速性问题   应用

我相信我使用了来自nuget package的最新版本的Kestrel依赖项:

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />

我还尝试重新创建Web App以确保没有垃圾,我使用最新的一切。我该如何解决?有什么想法吗?

Github issue

2 个答案:

答案 0 :(得分:0)

我认为这可能是由于启动代码中缺少 UseIISIntegration 调用引起的。

Azure Web Apps 基于 IIS ,因此在托管运行 Kestrel ASP.Net Core 时,则需要此集成,以允许 IIS 充当服务的反向代理。

希望有帮助!

答案 1 :(得分:0)

在 Azure 应用服务中,通常通过添加设置来解决:

WEBSITE_LOAD_USER_PROFILE = 1

可以在here找到有关它的一些信息。