The code below creates a crash dump when I run it in the Azure development environment, but not when I deploy it in the cloud. I have:
- Microsoft instructions (see below)
- Checked credentials in Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString by downloading blob.
- It was expected that it would collapse (about ten times).
- He stopped the deployment and waited half an hour.
But I still can not find anything in the storage account. I am targeting .Net 4 using VS 2010 Pro SP1 and deploying it with embedded material. What am I doing wrong?
public override void Run() { throw new ApplicationException("bugger"); } public override bool OnStart() { ServicePointManager.DefaultConnectionLimit = 12; DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); string conn_str = RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"); CloudStorageAccount account = CloudStorageAccount.Parse(conn_str); DiagnosticMonitor diagnosticMonitor = DiagnosticMonitor.Start(account, config); CrashDumps.EnableCollection(true); return base.OnStart(); }
Here is my configuration:
<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WorkerRole name="WorkerRole1"> <Imports> <Import moduleName="Diagnostics" /> </Imports> </WorkerRole> </ServiceDefinition>
and
<?xml version="1.0" encoding="utf-8"?> <ServiceConfiguration serviceName="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*"> <Role name="WorkerRole1"> <Instances count="1" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="AccountName=XXX;AccountKey=XXX;DefaultEndpointsProtocol=https" /> </ConfigurationSettings> </Role> </ServiceConfiguration>
(My real project does create crash dumps, but I have problems analyzing them, so I'm trying to create a shortened example. When this works, I will see if its crash dumps are better.)
EDIT: Part of the solution is to add
config.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
which creates the blob-crumps-dumps blob container, but unfortunately it remains empty. Also see my question about what happens with diagnostic data when a role fails .
source share