I have a problem with one async handler in distributed ASP.NET web app. First let me explain a use case:
application has disabled Session and authentication modules via web.config like this
<system.webServer> .... <modules> <remove name="WindowsAuthentication" /> <remove name="Session" /> <remove name="FormsAuthentication" /> </modules> </system.webServer>
application uses custom async web handler to serve the specific request
All normal (sync requests) are working fine but async request that does a little more work (that's why we use async request) is often slow but NewRelic reports that it is slow because of "AcquireRequestState". Now I've looked on google and stack overflow and this event is connected to creating a Session but we have sessions disabled in web.config. Does anyone know what else could "AcquireRequestState" could be doing? Are we missing some place to remove session state? Adding that from web.config to machine.config did nothing...
Here is a snippet from a request in NewRelic:
**Slowest components Count Duration % ** AcquireRequestState 1 12,600 ms 100% --> WTF? ExecuteRequestHandler 1 5.01 ms 0% Integrated Pipeline 1 0.334 ms 0% UpdateRequestCache 1 0.3 ms 0% EndRequest 1 0.168 ms 0% AuthenticateRequest 1 0.161 ms 0% Total time 12,600 ms 100%
<sessionState mode="Off" /> in web.config (
<system.web> section) so that is not it.