当第一页上传文件时,我无法从我自己的ASP.NET MVC网站打开第二页。第一页似乎阻止了第二页,我必须等到完成上传或清除网站cookie才能打开另一页。
请问这个问题?
由于
答案 0 :(得分:2)
问题是因为ASP.NET会话设计不佳,当你使用具有会话启用功能的MVC Action后面的代码,并调用发送大量数据的动作时,例如上传时,会话将被锁定ASP.NET
当会话被锁定时,当您请求其中包含会话的另一个MVC操作时,请求将排队,并且在锁定会话的上一个MVC操作释放它之前将不会处理该请求。这是我最近发现的ASP.NET上一个很大的设计错误
这就是许多大型网站使用SessionStateAttribute
禁用默认ASP.NET会话的原因[SessionState(SessionStateBehaviour.Disabled)]
这也是Microsoft的错误,因为CLass不接受属性,因此您必须按照此URL Apply session state behavior per action
中的说明进行解决。看到这一点我真的担心ASP.NET技术是我为我的网站选择的正确技术,由于微软所做的所有这些限制,我在这项技术上的努力和学习时间都会被抨击。
此外,实现ajax或其他异步事件(如Threading)将无法解决问题,因为当从具有会话启用的Action调用线程时,另一个也启用了会话的操作也将排队。 / p>