Skip to content Skip to sidebar Skip to footer

Why Are My Requests To Web.api Being Blocked By Long Running Controller Code?

I'm working on my local development environment using angular to issue ajax calls to Web.API (IIS 8.5 hosted). I'm making 5 calls via different angular controllers simultaneously,

Solution 1:

This may be a good situation to implement an asynchronous pattern on your web api backend - you'll be alleviated from your ajax calls blocking once they hit your controller. This can be achieved by leveraging an async and await pattern. You'll want to return a Task, which represents an asynchronous operation.

An example may include...

public async Task<IHttpActionResult> Put(string clientId)
{
    var response = await this.yourService.yourSavingMethod(clientId);

    return Ok(response);
}

Also see SO question Why is this web api controller not concurrent? for more details and insight on the issue. Furthermore, the default behavior for ASP.NET Session State and can be changed to accommodate concurrent requests. An example may include

HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.ReadOnly)

ASP.NET Session State Overview


Solution 2:

I think your problem is caused either by browser or ASP.NET. In case it's ASP.NET, take a look at this thread:

C# Web API - Blocking

In case it's your browser, take a look at this thread with example code:

Why is my async ASP.NET Web API controller blocking the main thread?


Post a Comment for "Why Are My Requests To Web.api Being Blocked By Long Running Controller Code?"