I have an app service (API, actually) published in Azure. Lately I’ve run into some strange problems where the service apparently just crashes with no exception handling. I have logging all over the place, and it just stops in its tracks when the code makes a specific service call, with no evidence of what’s going on. All of my unit testing and automated integration tests work fine. So, I’m breaking down and learning remote debugging of a Microsoft Azure process.
The obvious place to start is the Azure tutorial, here:
I followed the instructions, but had to make a few adjustments.
- Remote debugging reportedly blocks the rest of the website, so you definitely don’t want to do it in production.
- I use deployment slots, and have on called “dev” just for the purpose of development testing (and now remote debugging).
- You have to enable remote debugging in the deployment slot, not the main website.
- When you attach to the process, you have to use the right userid in the form of <website_uid>__<slotname>. That’s with two underscores. E.g. “MySitePublishingId__dev”. I found this specific ID in the publishing profile that you can download for each site and slot.
Through all of this, I’ve come to the conclusion that the thread is probably not crashing, but rather hanging due to async call returns (deadlock). But however I work that out will be another post.