MBender
MBender

Reputation: 5650

Azure: just HOW do I debug this?

I'm really loosing it here. Not being able to attach a debugger to a process is kind of a big deal for me. As such, I'm having a very hard time doing something to pinpoint the source of problems with an Azure-hosted application.

What's worse is that the app works fine in the Development Fabric, even when using online Storage Tables, but can go quite haywire when uploaded and running online.

I know IntelliTrace is one way to do it, but unfortunately, I've got a x86 machine, and the application uses RIA Services. As such, publishing it from my machine results in an error caused by RIA services. I can't build the application by specifying x64 the very same bug strikes again. (So far the only way that I know of to deploy a RIA Services Azure application is to set it to Any CPU and build / publish it from an x64 machine).

So IntelliTrace is not available. Online Azure doesn't have something to resemble the nice console log window of the Development Fabric, and as such, I'm at a loss. Thus far I've been just trying to get things to work and not crash by commenting out sections of code, but given the time it takes to upload and start an instance, this is hardly optimal.

Any suggestions would be appreciated at this point.

Upvotes: 2

Views: 328

Answers (4)

Matt Quinn
Matt Quinn

Reputation: 131

If you absolutely need to see what's going on on the console Rob Blackwell has embedded a neat little trick in his Azure Run Me solution.

It pushes the console output of azure instance(s) out over the service bus. You can therefore consume that data locally and in effect monitor the console of the instances running on Azure right on your desktop.

AzureRunMe is available here and it's open source so you can take a look at how they've fed the console output to the SB.

https://github.com/RobBlackwell/AzureRunMe

Upvotes: 0

Zack
Zack

Reputation: 1254

If you have access to another workstation with an x64 version of Visual Studio, you can configure Azure diagnostics to collect and copy the crash dumps to Blob Storage:

// Must be called after diagnostic monitor starts. CrashDumps.EnableCollection(false);

You can then download them (using a tool like Azure Storage Explorer) and debug them locally.

Upvotes: 0

BrentDaCodeMonkey
BrentDaCodeMonkey

Reputation: 5523

You could try to RDP into an instance of the role and see if there's anything in any of the logs (event or files) that helps you identify where the failure is.

Baring that, I think Amasuriel has it right in that you REALLY need to architect instrumentation into your solutions. Its something that's on my "must" list when building a Windows Azure application.

Upvotes: 1

Amasuriel
Amasuriel

Reputation: 2200

The Azure SDK has a logging / diagnostics mechanism built in: http://msdn.microsoft.com/en-us/library/gg433120.aspx.

One route would be to deploy a version with some Azure specific instrumentation built in.

Upvotes: 2

Related Questions