Question

J'essaie de tester le moniteur de diagnostic Azue dans une solution cloud avec une seule application ASP.NET.

J'obtiens une exception chaque fois que j'essaie de démarrer le moniteur de diagnostic:

        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

L'exception dit:

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: 

Je n'ai aucune idée de ce qui me manque, j'ai vérifié certains liens et ils font exactement cela. Une idée?

Acclamations.

Était-ce utile?

La solution

Cela doit me moquer de moi: |

Le problème est que le chemin est trop long, j'ai déplacé le projet vers D:\ Et puis ça marche bien @. @

J'ai trouvé la solution par hasard, lorsque j'entre dans un article parlant de limitations de longueur de chemin.

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

J'ai aussi frappé ma tête :(

Autres conseils

Je ne suis pas sûr de ce problème particulier.

Cependant, une chose qui pourrait aider, c'est qu'il est inhabituel de démarrer les diagnostics dans Page_load - il est beaucoup plus typique de démarrer dans la méthode de démarrage du rôle.

De plus, je ne recommanderais pas d'utiliser une période aussi courte que 5 secondes pour le transfert de vos fichiers journaux - une heure ou plus est normalement plus appropriée (bien que je comprends que ce paramètre est juste là pour le moment pour vous aider avec vos tests!)

J'ai trouvé l'exécution du projet sous iisexpress et non le serveur Web IIS a résolu ce problème pour moi. Pour changer cela, allez les propriétés du projet Azure et accédez à l'onglet Web, vous pouvez modifier ce paramètre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top