Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Asp.net 在长时间运行的AJAX请求上未收到响应,尽管已命中PreSendRequestContent事件_Asp.net_Iis_Windows Server 2008_Iis 7.5 - Fatal编程技术网

Asp.net 在长时间运行的AJAX请求上未收到响应,尽管已命中PreSendRequestContent事件

Asp.net 在长时间运行的AJAX请求上未收到响应,尽管已命中PreSendRequestContent事件,asp.net,iis,windows-server-2008,iis-7.5,Asp.net,Iis,Windows Server 2008,Iis 7.5,这个问题让我有点疯狂——我已经花了三天的时间来解决它。为了让它更烦人一点,我不能在我们的开发/测试环境中复制它——它似乎只在我们的生产环境中表现出来 场景: 有一个页面触发了一个上传程序——这个上传程序是一个YUI2 javascript上传程序组件,它在引擎盖下使用flash。该文件可以很好地上传到我们的服务器,之后会触发uploadsuccess javascript事件,从而向服务器发出ajax请求,以便我们进行进一步的处理。处理过程需要相当长的时间-最多12分钟。我知道这本身就是一个问题

这个问题让我有点疯狂——我已经花了三天的时间来解决它。为了让它更烦人一点,我不能在我们的开发/测试环境中复制它——它似乎只在我们的生产环境中表现出来

场景:

有一个页面触发了一个上传程序——这个上传程序是一个YUI2 javascript上传程序组件,它在引擎盖下使用flash。该文件可以很好地上传到我们的服务器,之后会触发uploadsuccess javascript事件,从而向服务器发出ajax请求,以便我们进行进一步的处理。处理过程需要相当长的时间-最多12分钟。我知道这本身就是一个问题,但为此创建异步线程进程所需的工作相当复杂,我们已将其安排在另一天。目前,我们在web.config中增加了web请求超时限制,以便请求不会超时

在我们的开发/测试环境中,过程完成并收到响应

在我们的生产环境中,流程完成,但从未收到任何响应:(

我试图找到问题:

我在代码中添加了大量的日志记录,甚至在asp.net页面生命周期中的每个事件发生时都会删除日志记录点

该操作似乎处理正确,然后每个页面生命周期事件都会一直持续到最后一个事件(在内容响应发送回客户端之前激发的PreSendRequestContent).然而,我完全没有收到任何回复-我甚至让fiddler启动并运行,以确保它不是某个奇怪的浏览器问题。什么都没有:(

我是一名开发人员,所以我觉得我已经用尽了这里的调试选项。问题似乎存在于IIS中更深的某个地方,在它离开asp.net堆栈之后,在它返回到客户端之前

我的请求:

是否有人对可能发生的事情有任何遥远的想法,或者我可以做些什么来继续我的故障排除和调试

如标记中所述,该应用程序是一个ASP.NET应用程序(特别是MVC 2),运行在Windows Server 2008计算机上的IIS 7.5 Web服务器上

如果你能提供任何帮助的话,我会一直赞美你

你的真诚;
受挫的开发人员

好的,问题已经解决了,但是我始终无法分离出请求被丢弃的确切问题和点。这是一个间歇性问题,只有在长时间运行的请求中才会遇到,这对web来说始终是个坏主意

我通过创建一个包含多个工作线程的后台工作队列来解决此问题。对原始操作的请求现在转移到工作队列。我还公开了一个状态页,用户可以在其中跟踪这些项目的进度,甚至重试失败的项目

似乎工作得很好,而且UI的响应速度更快,这总是一件好事