Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core RC2 IIS根据选项请求返回502_C#_Asp.net_Iis_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# ASP.NET Core RC2 IIS根据选项请求返回502

C# ASP.NET Core RC2 IIS根据选项请求返回502,c#,asp.net,iis,asp.net-core,asp.net-core-mvc,C#,Asp.net,Iis,Asp.net Core,Asp.net Core Mvc,我们有一个ASP.NET核心应用程序,最近升级到RC2。升级前一切正常,升级后一切都在开发和登台环境中正常工作,但在生产环境中,应用程序对MVC端点未处理的每个请求都以502响应: 502-Web服务器在充当网关或代理服务器时收到无效响应。 您正在查找的页面有问题,无法显示。当Web服务器(充当网关或代理时)联系上游内容服务器时,它收到来自内容服务器的无效响应 这意味着,例如,返回502而不是404,而对现有端点的调用工作正常 问题是,我们在跨源环境中使用应用程序,因此我们需要选项请求(飞行前c

我们有一个ASP.NET核心应用程序,最近升级到RC2。升级前一切正常,升级后一切都在开发和登台环境中正常工作,但在生产环境中,应用程序对MVC端点未处理的每个请求都以502响应:

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

这意味着,例如,返回502而不是404,而对现有端点的调用工作正常

问题是,我们在跨源环境中使用应用程序,因此我们需要选项请求(飞行前cors请求)才能工作,并且它们也会以502响应

所有环境都在运行安装了IIS 8.5和ASP.NET核心平台处理程序的Windows Server 2012

发生了什么事

更新


在进一步调试之后,我们发现这可能是由框架中的错误引起的。我们已经创建了一个

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

对于飞行前请求(选项请求,angular 5网站->asp.net core 2.0 web api,iis 7.5),我也出现了502错误


我发现我定义了两次ASPNETCORE\u环境变量(具有相同的值);一次在我的asp.net core web api的web.config文件中,一次在IIS的配置编辑器中(system.webServer/aspNetCore->ApplicationHost.config->environmentvariables)。一旦我删除了其中一个(IIS的一个,但无论哪一个都可以),我的飞行前请求又开始工作了

快速提问;您已经添加了
Microsoft.AspNet.Cors
services.AddCors()
ConfigureServices
中?是的,这在其他环境中也可以正常工作。通过IIS添加这些头也会使选项请求返回502,导致浏览器无法处理实际请求。那么,日志会说什么?您是否有子代码502.{x}?在生产环境中有什么不同,您是否有任何负载平衡硬件/软件?你跑ARR吗?它部署在Azure虚拟机上吗?没有子代码。它并没有部署在Azure中,而是部署在托管登台和测试环境的同一提供商的VM上(尽管它们不完全相同)。我不确定负载平衡,我认为IIS前面有一个负载均衡器,但响应显然来自IIS,所以我不确定这是否是问题所在。我知道的一件事是不同的,生产环境没有internet访问,因此ASP.NET核心模块安装程序的工作方式有点不同。我不确定我们是否有ARR。你能将你的web配置值粘贴到这里以供参考吗?它是这样的:但我删除了它,并将其放入,如上所述,在IIS的配置编辑器中。因此,当我将它部署到我的测试环境的IIS或我的产品环境之一时,它将分别以“生产”或“测试”作为值。我的意思是:因此,当我将它部署到我的测试环境的IIS或我的产品环境之一时,它将分别以“测试”或“生产”作为值。