我无法启动Azure诊断监视器

时间:2011-02-14 16:43:36

标签: azure web-config tracing azure-compute-emulator

我正在尝试使用单个asp.net应用程序在云解决方案中测试Azue诊断监视器。

每次尝试启动诊断监视器时都会出现异常:

        CloudStorageAccount account = CloudStorageAccount.Parse("UseDevelopmentStorage=true");

        Write(account.TableEndpoint.AbsoluteUri);

        // Get default initial configuration.
        var config = DiagnosticMonitor.GetDefaultInitialConfiguration();

        config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
        config.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);

        // Start the diagnostic monitor with the modified configuration.
        DiagnosticMonitor.Start(account, config); // Exception

例外说:

System.ArgumentException was unhandled by user code
  Message=Directory C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest\bin\Debug\CloudDebuggingTest.csx\roles\CloudDebuggingTest.Web\diagnostics\x64\monitor does not exist.
  Source=Microsoft.WindowsAzure.Diagnostics
  StackTrace:
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.ValidateStartupInfo(DiagnosticMonitorStartupInfo startupInfo) in :line 0
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.StartWithExplicitConfiguration(DiagnosticMonitorStartupInfo startupInfo, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start(CloudStorageAccount storageAccount, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
       at CloudDebuggingTest.Web._Default.StartDiagnostics() in C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest.Web\Default.aspx.cs:line 48
       at CloudDebuggingTest.Web._Default.Page_Load(Object sender, EventArgs e) in C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest.Web\Default.aspx.cs:line 19
       at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 

我不知道我错过了什么,我一直在检查一些链接,他们正是这样做的。有什么想法吗?

干杯。

3 个答案:

答案 0 :(得分:9)

这一定是在开玩笑吧:|

问题是路径太长,我把项目移到D:\然后它工作正常@。@

当我进入一篇谈论路径长度限制的文章时,我偶然发现了解决方案。

http://markegilbert.wordpress.com/2010/11/05/i-just-hit-my-head-on-a-cloud-microsoft-azure-and-full-path-limits/

我也打了我的脑袋:(

答案 1 :(得分:2)

我不确定这个特殊问题。

然而,有一件事可能会有所帮助,那就是在Page_Load中启动Diagnostics是不寻常的 - 从Role Start方法开始更为典型。

此外,我不建议使用短至5秒的时间来传输日志文件 - 一小时或更长时间通常更合适(虽然我知道此设置目前只是帮助您进行测试! )

答案 2 :(得分:0)

我发现在IISExpress下运行项目而不是IIS Web Server为我修复了这个问题。要更改此项,请转到Azure项目上的属性并转到Web选项卡,您可以更改此设置。