ASP.NET Core RC2 IIS在选项请求上返回502

sev*_*rin 5 c# asp.net iis asp.net-core-mvc asp.net-core

我们最近升级到RC2的ASP.NET核心应用程序.在升级之前一切都很好,升级后一切都在Dev和Staging环境中工作,但在Production中,应用程序对每个未由MVC端点处理的请求作出502响应:

502 - Web服务器在充当网关或代理服务器时收到无效响应. 您正在查找的页面存在问题,无法显示.当Web服务器(充当网关或代理)与上游内容服务器联系时,它从内容服务器收到无效响应.

这意味着,例如https://www.myapp.com/somenonexistingroute返回502而不是404,而对现有端点的调用工作正常.

问题是我们在跨源上下文中使用应用程序,因此我们需要选项请求(预检队列请求)才能工作,并且它们也会响应502.

所有环境都运行Windows Server 2012,并安装了IIS 8.5和ASP.NET Core平台处理程序.

到底是怎么回事?

更新

经过一些调试后,我们发现这可能是由框架中的错误引起的.我们创建了一个GitHub问题

Aym*_*rki 1

我知道现在提供帮助已经晚了,但也许它可以帮助其他面临此类问题的人。

\n\n

对于预检请求,我也遇到了 502 错误(选项请求、Angular 5 网站 -> asp.net core 2.0 Web api、iis 7.5)。

\n\n

我发现我定义了两次 ASPNETCORE_ENVIRONMENT 环境变量(具有相同的值);一次在我的 asp.net core web api 的 web.config 文件中,一次在 IIS 的配置编辑器中(system.webServer/aspNetCore -> ApplicationHost.config <\xe2\x80\xa6> -> enviromentVariables)。一旦我删除其中一个(IIS 的,但无论哪个都可以),我的预检请求就再次起作用了!

\n