.Net Web Api一次多个请求

时间:2013-05-17 13:23:46

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api request

我想启用从单个客户端向服务器发出多个并发请求。如何使用.Net WebApi完成此操作?在ASP.Net MVC 3中,可以通过向控制器添加follow属性来启用它:

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

有关MVC会话的信息,请访问:

The Downsides of ASP.NET Session State

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

Accessing Session Using ASP.NET Web API

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

2 个答案:

答案 0 :(得分:2)

通过添加:

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

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

Global.asax

答案 1 :(得分:1)

是的,在ASP.NET应用程序中使用会话存在很多问题。此外,默认情况下,HTTP(以及扩展名,类似REST的应用程序)是无状态的 - 因此每个 HTTP请求应该自带,以便其收件人将其处理为完全符合HTTP的无状态特性。

Web Api 不支持Asp.net Session ;你别无他法。 因此,如果您需要Web Api中的某些信息,请不要依赖Seesion State,而是将它们添加到您的请求中

有趣的是,有些人希望在Web Api中支持Session ......