0

我正在将网站从 Web 表单转换为 mvc。该网站有一个使用线程调用其他网络服务的页面。加载该页面需要 5 到 7 秒。在加载该页面时,如果我尝试打开同一网站的任何其他页面,它就不再起作用了。如果我在新选项卡中打开其他页面,它们会一直加载,直到第一页加载完成(5 到 7 秒)。它曾经在 Web 表单中工作。

有没有我可以研究的地方来解决这个问题,或者这只是我的应用程序特定的?

4

1 回答 1

1

通过查看您的问题描述,想到的一件事是 ASP.NET 会话。如果您的站点使用它,则无法将 2 个并行请求发送到从同一会话写入会话的控制器操作。ASP.NET 只是对会话的访问进行序列化,并将阻塞直到第一个请求完成。解决此问题的一种方法是完全禁用会话或不从您正在调用的控制器对其进行写入。这可以通过使用[SessionState]属性装饰这个控制器来完成:

[SessionState(SessionStateBehavior.ReadOnly)]
public class HomeController : Controller
{
    ... actions in this controller can be invoked 
        in parallel from the same session
}
于 2012-08-18T07:04:39.997 回答