我想启用从单个客户端向服务器发出多个并发请求。如何使用.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
所以,我认为这就是为什么我不能一次从客户端发出多个请求。我该怎么做才能启用该功能?
答案 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 ......