上传时我无法在我的网站上打开其他页面?

时间:2012-01-27 06:08:26

标签: iis file-upload asp-classic iis-6

我的网站在IIS7上运行,所有脚本都在ASP Classic中编码。我最近注意到在我的网站上传文件时我无法打开任何其他页面。

这是场景: 我开始使用网络表单上传视频文件,而文件正在上传我尝试在同一网站上打开另一个页面,但除非完全上传,否则它不会接收和加载单个字节!

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Session对象就是这个原因。 Session对象属于STA(单线程单元)。当请求到达属于特定会话时,处理请求的工作线程将进入会话对象所属的公寓。但是,如果该公寓中没有其他线程,它只能执行(因为STA一次只能容纳一个线程)。

因此,您的浏览器开始上传文件,正在执行与该浏览器会话相关联的ASP请求。处理该上载请求的工作线程进入会话对象所属的公寓。现在,您正在尝试加载另一个页面,而其他请求仍在进行中。当第二个请求到达时,ASP会发现它无法让另一个工作线程进入同一个会话公寓,因为它已经占用了第一个请求。因此,ASP会将第二个请求放入队列,等待第一个请求离开公寓。

避免这种情况的唯一方法是关闭ASP会话。这将允许ASP同时处理来自同一浏览器的请求。然而,严重的缺点是您将不再使用Session对象。您必须自己实现任何服务器端会话管理,包括处理并发问题,例如两个请求同时尝试访问任何会话数据。

答案 1 :(得分:0)

只有您的网站没有打开或其他网站?

如果是后者,请为您的互联网购买更好的套餐。