0

我想启用从单个客户端向服务器发出多个并发请求。如何做到这一点.Net WebApiASP.Net MVC 3可以通过向控制器添加以下属性来启用它:

[SessionState(SessionStateBehavior.ReadOnly)]
public class SomeController : AsyncController
{
  //.....
}

有关 MVC 会话的信息可在此处找到:

ASP.NET 会话状态的缺点

但是在 Web Api 应用程序中它不起作用。我还访问了这个问题中的会话数据:

使用 ASP.NET Web API 访问会话

所以,我认为这就是为什么我不能一次从客户端发出多个请求。我应该怎么做才能启用该功能?

4

2 回答 2

2

通过添加解决:

void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
        {
            HttpContext.Current.SetSessionStateBehavior(
                SessionStateBehavior.ReadOnly);
        }

public override void Init()
        {
            PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest;
            base.Init();
        }

Global.asax

于 2013-05-20T12:26:23.913 回答
1

是的,在 ASP.NET 应用程序中使用会话存在很多问题。此外,默认情况下,HTTP(以及扩展的类似 REST/风格的应用程序)是无状态的——因此,每个HTTP 请求本身都应该携带足够的信息,以便其接收者对其进行处理,以与无状态的性质完全一致。 HTTP。

Web Api不是为支持 Asp.net Session 而设计的;你没有别的事可做。因此,如果您需要 Web Api 中的一些信息,请不要依赖 Seesion State,而是将它们添加到您的请求中

很可笑的是,有些人想在 Web Api 中支持 Session ......

于 2013-05-17T13:27:36.123 回答