【问题标题】:IIS 7.5 Crashes when sending big XML发送大 XML 时 IIS 7.5 崩溃
【发布时间】:2012-04-24 20:47:49
【问题描述】:

我有一个返回 XML 文件的 Web 服务。

第一个请求返回一个大小约为 50MB 的 XML 文件,任何新请求都会小得多,更像是 1KB 左右。

发送大 XML 时,我的 IIS 崩溃(仅在第一个请求时)。

我收到错误 504,在事件查看器中我可以看到:

Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2
Faulting module name: clr.dll, version: 4.0.30319.239, time stamp: 0x4e1822f4
Exception code: 0xc00000fd
Fault offset: 0x0000000000001177
Faulting process id: 0x15cc
Faulting application start time: 0x01cd225011f055d0
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Report Id: 5110375b-8e43-11e1-b097-001b217fde7f

我试图用谷歌搜索这个错误,但一无所获!

我想也许我应该增加应用程序池内存大小或 CPU 使用率,但不确定是否是问题所在。

你们有什么想法吗?如何解决?

【问题讨论】:

  • IIS 作为响应正文返回什么消息?如果您的浏览器没有显示,您可以使用 fiddler 查找。
  • 在提琴手或浏览器中都看不到任何东西,我在提琴中看到的只是:ReadResponse() failed: 服务器没有为此请求返回响应。
  • 好的。将 Visual Studio 附加到 w3wp.exe 并将其设置为在异常时中断 (ctrl-shift-e)。请发布完整的例外情况。
  • 这个错误发生在生产环境,我们没有安装VS。我们的产品目前运行良好,但仅在特定要求下才会出现。还有其他选择吗?
  • 请添加创建此 XML 的 C# 代码,否则 C#、.Net-4.0 和 ASP.Net-MVC 标签没有帮助。

标签: c# asp.net-mvc .net-4.0 windows-server-2008 iis-7.5


【解决方案1】:

0xc00000fd 是....堆栈溢出!所以听起来你需要附加一个调试器,看看发生了什么

【讨论】:

  • 我没有在 XML 来自的机器上安装 VS。除了VS我还能怎么做?
  • 我认为这是原因。我建议您在所有内容上都使用 catch(StackOverflowException) 并记录结果。
  • 是否可以通过在 IIS 应用程序池中添加另一个 RAM 来解决?还是我真的没明白?
【解决方案2】:

尝试发送小 XML 而不是大 XML。

【讨论】:

  • 因为我的 XML 是动态的,所以问题很大。
  • @IdoLazar:既然你的 XML 是动态的,你能告诉我们你是如何制作 XML 的吗?
  • 我只是从数据库中获取数据,然后发送给客户端。对于较小的 XML(如 30MB),它可以完美且快速地运行!比它崩溃的更大
  • 您只是从数据库中检索 XML 还是从数据库中检索数据并将其转换为 XML?无论哪种方式,创建 XML 的代码都是问题所在。
猜你喜欢
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多