.net Connection_Abandoned_By_ReqQueue 问题
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8404569/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Connection_Abandoned_By_ReqQueue Problems
提问by GregInWI2
I have this strange problem. I have 3 sites using the exact same code. All are on the same dedicated server and all have their own app pool. It's Windows 2008 R2 server. One of the sites keeps having the Connection_Abandoned_By_ReqQueue problem every few hours. Again, same code on all 3 sites, but only one is running into that. App pool has default settings.
我有这个奇怪的问题。我有 3 个站点使用完全相同的代码。所有这些都在同一个专用服务器上,并且都有自己的应用程序池。它是 Windows 2008 R2 服务器。其中一个站点每隔几个小时就会出现 Connection_Abandoned_By_ReqQueue 问题。同样,所有 3 个站点上的代码都相同,但只有一个站点遇到了该问题。应用程序池具有默认设置。
I read that I should use Microsoft's Debug Diagnostics app and I installed it on my dev machine to play with it first and none of the reports showed nothing recognizable (.NET) so if it's the same on the server I'm not sure how that will help me track down the problem.
我读到我应该使用 Microsoft 的 Debug Diagnostics 应用程序,我将它安装在我的开发机器上以首先使用它,并且没有任何报告显示任何可识别的(.NET)所以如果它在服务器上是相同的,我不确定如何将帮助我追踪问题。
What's the best of finding the cause of these Connection_Abandoned_By_ReqQueue errors? I've read many things can cause this, which doesn't help.
找出这些 Connection_Abandoned_By_ReqQueue 错误的最佳原因是什么?我读过很多事情会导致这种情况,这没有帮助。
回答by Siderite Zackwehdex
I found this site: http://blog.leansentry.com/the-server-logs-you-need-to-know-to-fix-any-iis-aspnet-error/that explains where the IIS errors can be found.
我找到了这个网站:http: //blog.leansentry.com/the-server-logs-you-need-to-know-to-fix-any-iis-aspnet-error/解释了哪里可以找到 IIS 错误.
Important is that this error message is specific to Vista and Windows 2008. Other people have met with the same problem and found various solutions:
重要的是,此错误消息特定于 Vista 和 Windows 2008。其他人也遇到过同样的问题并找到了各种解决方案:
- Memory corruption: https://forums.iis.net/t/1156530.aspx
- Cryptographic exceptions caused by server overload: https://serverfault.com/questions/227648/iis-worker-process-recycle-without-killing-w3wp
- Low pagefile: http://mvolo.com/low-pagefile-can-cause-503-service-unavailable-on-azure-web-roles/
- long running or very large result sets from database
- this was interesting because it was about a version mismatch: https://blogs.msdn.microsoft.com/rakkimk/2009/08/07/iis-getting-connection_abandoned_by_apppool-defaultapppool-file-version-mismatch/
- 内存损坏:https: //forums.iis.net/t/1156530.aspx
- 服务器过载导致的加密异常:https: //serverfault.com/questions/227648/iis-worker-process-recycle-without-killing-w3wp
- 低页面文件:http: //mvolo.com/low-pagefile-can-cause-503-service-unavailable-on-azure-web-roles/
- 来自数据库的长时间运行或非常大的结果集
- 这很有趣,因为它与版本不匹配有关:https: //blogs.msdn.microsoft.com/rakkimk/2009/08/07/iis-getting-connection_abandoned_by_apppool-defaultapppool-file-version-mismatch/
Without more information I cannot find a single reply to your question other than just try all of the above.
如果没有更多信息,除了尝试以上所有方法外,我找不到对您问题的单一答复。
回答by StuartLC
Just to clarify to other readers - the error Connection_Abandoned_By_ReqQueueis logged in the IIS Http error log (under %SystemDrive%\Windows\System32\LogFiles\HTTPERR)
只是为了向其他读者澄清 - 错误Connection_Abandoned_By_ReqQueue记录在 IIS Http 错误日志中(在 下%SystemDrive%\Windows\System32\LogFiles\HTTPERR)
Other potential causes here are Stack Overflows, and Access Violation type exceptions, which can be difficult to track down as the app's standard fault / exception handling code and logging may be skipped.
此处的其他潜在原因是堆栈溢出和访问冲突类型异常,由于可能会跳过应用程序的标准错误/异常处理代码和日志记录,因此很难追踪这些异常。
Be sure to also examine the Application Log in Event Viewer. With some luck, each failure will log an Application Error, and if the W3WP process crashes, a Windows Error Reporting crashdump entry may be logged.
一定还要检查事件查看器中的应用程序日志。幸运的是,每次失败都会记录一个应用程序错误,如果 W3WP 进程崩溃,可能会记录一个 Windows 错误报告崩溃转储条目。
Here's an example of a Stack Overflow (0xc00000fd)
这是堆栈溢出的示例 ( 0xc00000fd)
Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x52157ba0
Faulting module name: clr.dll, version: 4.0.30319.34209, time stamp: 0x5348961e
Exception code: 0xc00000fd
Fault offset: 0x00001ffb
Faulting process id: 0x3918
Faulting application start time: 0x01d2398c5d2febfc
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: a796f4a2-a581-11e6-80eb-0050569051a9
Faulting package full name:
Faulting package-relative application ID:
The WER Crash Dump record in the Application Log will show you where you can locate the dump (These files may be available here: C:\ProgramData\Microsoft\Windows\WER\ReportQueue) which you can then scrutinize with a debugger like WinDbg.
应用程序日志中的 WER 故障转储记录将显示您可以找到转储 ( These files may be available here: C:\ProgramData\Microsoft\Windows\WER\ReportQueue) 的位置,然后您可以使用 WinDbg 之类的调试器对其进行检查。
回答by Jamie Clayton
Sounds like the connection abandoned is to do with connection pooling and/or IIS Application Pool Recycling or some setting that you have in the Application pool advanced settings. Periodic errors sound like IIS stepping in to clean up any developer coding mistakes in my experience.
听起来放弃的连接与连接池和/或 IIS 应用程序池回收或应用程序池高级设置中的某些设置有关。根据我的经验,周期性错误听起来像是 IIS 介入以清除任何开发人员编码错误。
It's not clear in your question if these applications run on separate servers or the that each server is exactly the same OS.
您的问题不清楚这些应用程序是在单独的服务器上运行还是每个服务器都是完全相同的操作系统。

