2010-06-29 7 views
5

Ich habe einige WCF-Dienste über ein Webkonfigurationsprojekt auf einem Server bereitgestellt. Sie werden in einer IIS-Anwendung gehostet, die anscheinend ausgeführt wird fein.WCF-Protokollierung funktioniert nicht und versucht ALLE Informationen darüber zu erhalten, warum Dienste nicht funktionieren

Wenn ich jedoch versuche, zum wsdl zu navigieren, wird nichts gefunden.

Ich versuche, Diagnoseprotokollierung einzurichten, um einige Informationen zu erhalten.

Ich habe den Rat von hier folgt: wcf trying to set up tracing to debug, not writing to log file

Auch ich habe versucht, was in der referenzierten MSDN-Dokumentation ist hier: http://msdn.microsoft.com/en-us/library/aa702726.aspx unter „Empfohlene Einstellungen für die Bereitstellung oder Debugging“ .. meine web.config identisch ist Aufbau. Aber keine Protokolldatei wird erstellt.

Nichts nützliches in der Ereignisanzeige.

Irgendwelche Ideen? Danke !!

Antwort

3

Könnte ein Berechtigungsproblem sein; IIRC diese erscheinen nicht immer im Ereignisprotokoll. Stellen Sie sicher, dass der Benutzer, unter dem IIS ausgeführt wird, über Schreibberechtigungen für den Protokolldateipfad verfügt.

+0

danke für die idee.Ich habe 'Jeder' die volle Kontrolle über c: \ logs gegeben, aber es wurde noch nichts geschrieben. –

+0

Hmm ... zeigen die IIS-Protokolle an, dass die Anfrage bearbeitet wird? Was ist der HTTP-Antwortcode? – Randolpho

+0

Interessanterweise wird nichts in den IIS-Protokollen angezeigt, wenn ich versuche, darauf zuzugreifen. –

2

Dies ist normalerweise die Diagnosekonfiguration, die ich verwende. Scheint für mich zu arbeiten.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    ... 
    <system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Verbose"> 
     <listeners> 
      <add name="sdt" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="D:\wcfLog.svcLog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 
</configuration> 

Wenn Sie keine Ausgabe erhalten, kann es sein, dass Ihr Dienst nicht korrekt gestartet wird. Der ServiceHost muss für die Diagnose bereit sein, um irgendetwas auszugeben. Mit IIS, obwohl Ihre Site ausgeführt wird, bedeutet dies nicht, dass der ServiceHost ordnungsgemäß gestartet wurde. Es ist normalerweise ein Config-Problem. Ich bin kein Web-Typ, aber schreibt IIS nicht in EventViewer, wenn auf der Website eine unbehandelte Ausnahme vorliegt?

Sie könnten auch versuchen, eine benutzerdefinierte ServiceHostFactory zu erstellen. Auf diese Weise steuert Ihr Code die Erstellung von ServiceHost und Sie können alle Ausnahmen abfangen und selbst protokollieren.

eine benutzerdefinierte Servicehost in IIS Erstellen ->LINK

1

Dies ist eine alte Frage, aber zum Wohle eines jeden, der auf das Thema stolpern könnten:

  1. Stellen Sie sicher konfiguriert haben sowohl die System .diagnostics und System.serviceModel/diagnostics Abschnitte konfiguriert.
  2. Stellen Sie sicher, dass Sie sie in der richtigen App.config/Web.config-Datei konfiguriert haben. Zu beachten ist, dass mehrere Konfigurationsdateien in einem Projekt vorhanden sein können, und die verwendete Konfiguration hängt von der Buildkonfiguration ab.

Persönlich hatte ich das gleiche Symptom, bis ich, dass ich die Abschnitte unter app.config setzen bemerkt (in meinem Fall, Client-Seite-Tracing) statt app.DebugLocal.config. Letzteres wurde verwendet, da meine Build-Konfiguration auf DebugLocal gesetzt wurde.

Verwandte Themen