这个问题让我有点发疯——我现在已经花了 3 天的时间来解决这个问题。为了让它更烦人,我无法在我们的开发/测试环境中复制它——它似乎只在我们的生产环境中表现出来。
场景:
有一个页面会触发一个上传器——这个上传器是一个 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 网络服务器上运行。
如果你能以任何方式提供帮助,我会赞美你到最后。
忠实于你的; 沮丧的开发者