Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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# Azure网站错误502_C#_Asp.net_Azure Web App Service - Fatal编程技术网

C# Azure网站错误502

C# Azure网站错误502,c#,asp.net,azure-web-app-service,C#,Asp.net,Azure Web App Service,我在Azure上有一个ASP.NET Webforms应用程序,但在某些网站上总是出现以下错误: 502-Web服务器在充当网关或代理服务器时收到无效响应。 我已经阅读了很多关于Azure上502错误的主题,但我仍然不明白在我的特殊情况下问题是什么 该错误仅发生在应用程序的某个站点上。我始终可以复制以下模式: 打开SITENAME.azurewebsites.net->出现错误 打开SITENAME.azurewebsites.net/Site1.aspx->错误未发生 打开SITENAME.

我在Azure上有一个ASP.NET Webforms应用程序,但在某些网站上总是出现以下错误: 502-Web服务器在充当网关或代理服务器时收到无效响应。

我已经阅读了很多关于Azure上502错误的主题,但我仍然不明白在我的特殊情况下问题是什么

该错误仅发生在应用程序的某个站点上。我始终可以复制以下模式:

  • 打开SITENAME.azurewebsites.net->出现错误
  • 打开SITENAME.azurewebsites.net/Site1.aspx->错误未发生
  • 打开SITENAME.azurewebsites.net/Site2.aspx->错误未发生
  • 刷新SITENAME.azurewebsites.net/Site2.aspx->发生错误,在我再次调用Site1.aspx之前不会消失
我在日志中发现的唯一一件事是,应用程序加载System.Windows.Forms.dll,并且存在AccessViolationException。我完全不知道为什么要加载这个dll,因为Visual Studio中的任何项目都没有对它的引用,但这是另一回事:)

但我不明白的是,错误502并不总是发生在站点502上。 也许有人可以给我一个提示,可能是什么问题,或者我如何找到它

谢谢你的帮助

编辑:
我忘记提到的是:在一些关于这个错误的帖子中,我读到,它发生在3分钟后或者类似的事情。在我的例子中,几乎总是需要25秒,直到出现错误消息。

这表明应用程序出现问题。设置502的原因是,工作进程正在崩溃,前端留下一个没有响应的请求,并返回一个502来准确说明这一点。在网站的LogFiles文件夹下查找
eventlog.xml
。或者你可以试试

System.Windows.Forms.dll
包含大量可能无法在Azure网站沙箱中工作的UI代码。加载它的原因可能是因为您正在使用程序集中的某些内容,或者使用了使用该程序集中某些内容的内容。它不必在VisualStudio中列出就可以加载,因为它是标准.NET框架的一部分


我建议研究一下远程调试,弄清楚这是在什么时候加载的,以及为什么

在我的例子中,我得到了502个错误,因为azure auto heal系统重新启动了该站点。事实证明,几天前我用自动修复系统进行了测试,但由于最后我禁用了它,我认为它不会导致我的502错误

在这里,我发现用于更改自动修复设置的azure界面(mywebsite.scm.azurewebsites.net/Support->release)只会影响生产槽。但是,当您交换部署插槽时,设置将被交换。显然无法直接更改暂存插槽设置,您必须交换、更改设置,然后再次交换

因此,我的暂存槽启用了auto heal,生产槽禁用了auto heal(当然当时我认为这两个槽上都禁用了)。然后,我“随机”在暂存或生产中遇到502个错误,这取决于我交换它们的次数。奇怪的是,尽管应用程序似乎重新启动(或者至少无法响应一些请求),但我的日志文件中没有相应的事件,比如在auto heal系统触发应用程序池回收后,它没有运行application_Start


我花了一整天的时间才弄清楚到底发生了什么,我希望这个答案能对处于同样情况的人有所帮助。

我在拨弄连接字符串后,出现了一段时间的错误,一个小时后就消失了,网站又恢复了正常工作。非常技术性的回答。

谢谢我们的回答!我尝试了远程调试,但没有走多远,因为我在启动后立即遇到AccessViolationException:)。关于Windows.Forms.dll:是否可能是System.Drawing.dll导致加载Windows.Forms?是的,您在System.Drawing中使用什么?绘图使用了大量被Azure Sandbox阻止的GDI+代码。一般来说,大多数UI代码都会被阻止,因为它依赖于被阻止的内核调用。一般来说,服务器代码中不需要它。如果您只是使用System.Drawing中的帮助程序函数,那么它们可能是我在向Microsoft报告的SWAP上发现错误的替代方法,其中请求未路由到正确的web服务器。他们应该在一个月内修复写此消息。我相信这个bug已经存在了一段时间了。嗨@jsgoupil,交换时我也会发生同样的事情。。。“你知道它是否已经被纠正了吗?”Subgurim我相信这已经被纠正了。我一直在交换,现在没有任何问题。我还没有运行我的测试仪。