我正在将网站从网络表单转换为mvc。该网站有一个页面,使用线程调用其他Web服务。加载该页面需要5到7秒。当该页面正在加载时,如果我尝试打开同一网站的任何其他页面,它将不再起作用。如果我在新标签页中打开其他页面,则会一直加载,直到第一页加载(5到7秒)完成。它曾用于网络表单。
我是否有任何可以解决此问题的地方,或者这只是我的具体应用程序?
答案 0 :(得分:1)
通过查看您的问题描述,我想到的一件事是ASP.NET Session。如果您的站点使用它,则无法向从同一会话写入会话的控制器操作发送2个并行请求。 ASP.NET只是序列化对会话的访问,并将阻塞直到第一个请求完成。解决这个问题的一种方法是完全禁用会话或不从你正在调用的控制器写入它。这可以通过使用[SessionState]
属性装饰此控制器来完成:
[SessionState(SessionStateBehavior.ReadOnly)]
public class HomeController : Controller
{
... actions in this controller can be invoked
in parallel from the same session
}