客户端断开连接挂起IIS应用程序池

时间:2012-10-23 21:57:50

标签: c# web-applications iis-7.5 windows-server-2008-r2

我有几个.NET 3.5站点在Windows 2008 R2 64位IIS 7.5 Web服务器上运行相同的代码库。我们在允许用户管理服务器上的文件(上传,下载,删除)的过程中遇到问题。在我们从Windows 2003上运行IIS 6的旧服务器移动站点之前,我们从未遇到过此功能的任何问题。移动后,我们有三个不同的站点完全锁定并停止执行请求。我不得不重新启动应用程序池和网站以使它们再次运行。我们将应用程序池更改为以经典模式运行,这确实阻止了站点崩溃。

在分析网站历史时,我们发现有大约二十到三十人(一类)在大约10分钟内上传多个文件(每个.5到2兆)。因此,我们将问题追溯到此文件管理功能,并决定将数据存储移动到本地驱动器上。我们继续在机器上出现错误,描述用户在工作完成之前离开这些页面,因此我添加了Response.IsClientConnected的测试。这一切似乎都有所帮助,但错误仍在继续。我们安装了一个应用程序(IIS Peek)来监视活动并报告长时间运行的请求。我将执行超时设置为五分钟,然后让IIS Peek监视任何花费更长时间的请求。我们不断在pdf和flash文件中获得多个错误,但最终他们会清理。因此,当我们从文件管理功能中获取错误时,我们根本无法管理文件(页面只会超时)。我决定尝试使用AsyncPage解决方案,这似乎解决了文件管理只是锁定的问题。但是我们仍然有问题。我们在文件上传页面上遇到的错误往往会持续一个小时或更长时间,当问题存在时,即使使用AsyncPage解决方案,文件上传也需要相当长的时间才能完成。昨天,在其中一集中,我根本无法上传文件。我能够删除一个文件。因此,尽管问题较少,但我们仍然遇到文件管理功能问题。

以下是我们在发送响应之前与用户断开连接的两个不同错误。

异常消息:与远程主机通信时发生错误。错误代码是0x800704CD。

异常消息:与远程主机通信时发生错误。错误代码是0x80070057。

1 个答案:

答案 0 :(得分:0)

当我们意外地将文件加载到内存中时,我们遇到了类似的问题。使用实体框架(或任何框架)和二进制/ blob数据类型时要小心。