2010-11-21 5 views
4

J'ai essayé d'obtenir les journaux IIS à partir d'Azure, et j'ai réussi à le faire fonctionner une fois - maintenant, peu importe ce que j'essaie, je n'arrive pas à transférer les journaux vers mon Compte de stockageRécupération des journaux IIS à partir d'Azure

J'essayais de le faire sans redéployer mon code, qui après lecture semblait possible. Et, comme je l'ai mentionné, j'ai eu du succès. Mais cela me rend fou, ça ne le fera plus. Bien que, il crée la file d'attente dans mon compte de stockage quand je commence un transfert, mais c'est tout ce qu'il semble faire.

Les étapes de base que je fais sont:

  • Ajout du nom de stockage et la clé de ma config comme « DiagnosticsConnectionString » *.
  • Définition d'une configuration DiagnosticMonitor pour une minute, avec une configuration DirectoriesBufferConfiguration.
  • Démarrage d'un transfert OnDemand avec un nouveau nom de file d'attente.

J'ai fait tout ce qui précède à la fois par programmation et par l'intermédiaire des cmdaplets pour PowerShell. Dès que je commence un transfert, il reste avec le statut "Pas encore publié (Ne pas terminer/annuler)".

J'ai essayé les journaux, les répertoires et même supprimé et recréé mon compte de stockage. Rien ne semble fonctionner. Il a semblé fonctionner quand j'ai directement ajouté mes informations de compte de stockage à ma configuration de rôle via le portail azure; Après la mise à jour du déploiement, j'ai vu les journaux. Mais cela ne fonctionne plus. Quelqu'un at-il de bons conseils/matériel? Je veux juste transférer mes journaux IIS à mon compte de stockage - je suis là depuis des jours.

Mise à jour: * Ceci est ma config:. Mes WebRole.cs contenaient ce qui suit, quand il a travaillé:

DiagnosticMonitor.Start("DiagnosticsConnectionString"); 

Je l'ai mis à jour pour commencer les transferts:

var diag = new DiagnosticMonitorConfiguration() 
{ 
    ConfigurationChangePollInterval = TimeSpan.FromMinutes(1), 
    Directories = new DirectoriesBufferConfiguration() 
    { 
     ScheduledTransferPeriod = TimeSpan.FromMinutes(1) 
    }, 
    Logs = new BasicLogsBufferConfiguration() 
    { 
     ScheduledTransferLogLevelFilter = LogLevel.Verbose, 
     ScheduledTransferPeriod = TimeSpan.FromMinutes(1) 
    } 
}; 
DiagnosticMonitor.Start("DiagnosticsConnectionString", diag); 
+0

Pouvez-vous poster la configuration de votre déploiement d'azur après avoir modifié avec le diagnostic à distance? Évidemment supprimer les informations privées – Igorek

+0

J'ai mis à jour ma question pour inclure la configuration. Il est à noter que j'ai changé l'intervalle de 5 minutes, à distance - par http://stackoverflow.com/questions/4170285/where-is-the-diagnostics-logs-storage-tables – nullable

Répondre

4

changer une ligne:

De

var diag = new DiagnosticMonitorConfiguration() 

à

var diag = DiagnosticMonitor.GetDefaultInitialConfiguration() 

Après-mots, utilisez les objets existants avec n le diag et ne pas ajouter le vôtre. Ceci est mon OnStart:

  var config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 

      config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Information; 
      config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 
      config.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 
      DiagnosticMonitor.Start("DiagnosticsConnectionString", config); 
+0

Je pense que cela a fait l'affaire! Je vous remercie.Je me souviens d'avoir déjà utilisé ça, mais j'ai réécrit mon application distante pour forcer le transfert de ces logs, et j'ai initié la configuration moi-même. Merci pour le pointeur! Je n'ai plus d'idées. – nullable

+0

J'ai eu le même problème à un moment où je codais. Heureux de vous aider – Igorek

1

Il se pourrait que les journaux ne sont pas générés, plutôt qu'un problème au moment du téléchargement.

Il y a un progamme appelé AzureLogFetcher qui peut aider, des conseils sur l'obtention de l'exploitation forestière au travail peut être trouvé here

Questions connexes