Your app works fine in testing. You deploy it, a few users come on, and then it just... hangs. No error, no crash. The request sits there until it times out.
You check the logs. Nothing useful. You restart the app and it's fine again for a while, then it locks up again under load.
If you've got .Result or .Wait() anywhere in your code, that's very likely your problem. They look harmless. They're not.
What These Actually Do
.Result and .Wait() take an async method and force it to run synchronously. You've got a Task and you want the value now, without making your method async, so you write:






