Iis 我能';上传时是否无法打开我网站上的其他页面?

Iis 我能';上传时是否无法打开我网站上的其他页面?,iis,file-upload,asp-classic,iis-6,Iis,File Upload,Asp Classic,Iis 6,我的网站在IIS7上运行,所有脚本都用ASP Classic编码。我最近注意到,在我的网站上传文件时,我无法打开任何其他页面 这是一个场景: 我开始使用web表单上传视频文件,在上传文件时,我尝试在同一网站上打开另一个页面,但除非完全完成上传,否则它不会接收和加载一个字节 有什么想法吗?只有你的网站没有打开,或者其他网站也没有打开 如果是后者,请为您的internet购买更好的软件包。会话对象是导致此问题的原因。会话对象属于STA(单线程单元)。当属于特定会话的请求到达时,处理该请求的工作线程将

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

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


有什么想法吗?

只有你的网站没有打开,或者其他网站也没有打开


如果是后者,请为您的internet购买更好的软件包。

会话对象是导致此问题的原因。会话对象属于STA(单线程单元)。当属于特定会话的请求到达时,处理该请求的工作线程将进入会话对象所属的单元。但是,它只能在该单元中没有其他线程的情况下执行该操作(因为STA一次只能容纳一个线程)

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


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

谢谢。非常有用的信息。我已经在我的ASP经典网站上做了很多调整,但它只是越来越难在ASP技术上运行我的大型网站,因为它不再由微软开发。所以,我认为最好是一劳永逸地更换技术。你有什么建议?