Calling HttpClient async functions from constructors in ASP.NET 4.5
Recently, we have been using async/await a lot in our ASP.NET MVC project. It is very powerful. However, as with most power, comes great responsibility. In multithreading, this adage can be translated to "with great parallelism, don't deadlock" . As it has been documented and explained, in the current ASP.NET stack, when you await during a request, you will get a callback on the originating thread (that's the point of await/async after all). When you make an awaitable call to let's say HttpClient.GetStringAsync() , it will want to come back on that thread also. As well explained by Stephen Cleary in his StackOverflow answer ( here ), this goes south pretty much immediately if you start blocking somewhere in the call stack. This is true if you call a Task<T>.Result . No async in constructors Unfortunately, for good reasons, constructors cannot be async. Therefore, they cannot await on anything. In our case, we needed to retrieve some data from another...