ASP.. NET 5 (RC1)坏网关:指定的CGI应用程序遇到错误,服务器终止了该进程.<



我正在运行一个ASP。. NET 5项目中的Azure Web应用程序。

当使用大约1.5mb或更大的文件(form-data)调用API端点时,我得到一个502 Bad Gateway,响应体中有以下消息:

指定的CGI应用程序遇到错误和服务器终止进程。

奇怪的是,当上传一个较小的文件时,调用工作正常。它似乎在1.5mb标记附近产生502,但它并不完全一致。

我正在使用ASP。. NET 5 RC1.

在Startup.cs中,我将app.UseIISPlatformHandler();作为Configure()方法中的第一个中间件添加。

project.config:

{
...
"webroot": "wwwroot",
"dependencies": {
"Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.Authorization": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Abstractions": "6.0.0-rc1-final",
"Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc1-final",
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final",
"Newtonsoft.Json": "6.0.6",
"WindowsAzure.Storage": "5.0.2",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
...
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": { }
},
}

编辑:

根据Jessevl的建议,抛出了以下异常:

先。InvalidDataException:请求内容的意外结束Microsoft.AspNet.Server.Kestrel.Http.MessageBody.ForContentLength.d__3.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.WebUtilities.FileBufferingReadStream.d__27.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.WebUtilities.BufferedReadStream.d__39.MoveNext (),从抛出异常的前一个位置开始的堆栈跟踪结束——at system . runtime . compilerservices . taskawait . throwfornonsuccess (Task . runtime . compilerservices . taskwait . throwfornonsuccess任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.WebUtilities.MultipartReaderStream.d__36.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.WebUtilities.StreamHelperExtensions.d__0.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务在System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)Microsoft.AspNet.Http.Features.Internal.FormFeature.d__12.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Mvc.ModelBinding.FormValueProviderFactory.d__1.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Mvc.ModelBinding.CompositeValueProvider.d__2.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务在System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__49.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atMicrosoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__44.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler.d__6.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute.d__10.MoveNext (),从抛出异常的前一个位置开始的堆栈跟踪结束——at system . runtime . compilerservices . taskawait . throwfornonsuccess (Task . runtime . compilerservices . taskwait . throwfornonsuccess任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务在microsoft.asp.net . routing . routecollection .d__9. movenext()——从抛出异常的前一个位置开始的堆栈跟踪结束——at system . runtime . compilerservices . taskawait . throwfornonsuccess (Task . runtime . compilerservices . taskwait . throwfornonsuccess任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务在microt.asp.net . builder . routermiddleware .d__4. movenext()——从抛出异常的前一个位置开始的堆栈跟踪结束——at system . runtime . compilerservices . taskawait . throwfornonsuccess (Task . runtime . compilerservices . taskwait . throwfornonsuccess任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.ApplicationInsights.AspNet.RequestTrackingMiddleware.d__4.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.IISPlatformHandler.IISPlatformHandlerMiddleware.d__8.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)Microsoft.AspNet.Hosting.Internal.HostingEngine灵活;> c__DisplayClass32_0.d.MoveNext ()——从抛出异常的前一个位置开始的堆栈跟踪结束——atSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务在microt.aspnet.server.kestrel . http . frame .d__79. movenext ()

当前的Asp. js版本似乎有一些问题。Net 5在Azure Web应用程序中运行时返回的错误总是

指定的CGI应用程序遇到错误,服务器终止进程。

,不管实际错误是什么。例如,当我在代码中有一个不正确的连接字符串到Azure Event Hub时,我得到了这个错误。

您可以尝试远程调试(见这里)或简单地使用Kudu扫描您的日志,您可以在[websitename].scm.azurewebsites.net上找到(将[websitename]替换为通常在[websitename].azurewebsites.net中的内容),或Visual Studio服务器资源管理器。

耶西

最新更新