Basic NLog Ziel-Datei funktioniert nicht unter IIS 8 und Windows Server 2012

Ich kann einfach nicht NLog arbeiten zuverlässig unter Windows Server 2012-IIS 8. Dies ist ein Azure Virtual Maschine (nicht eine webrole), so dass die Dinge gewesen sein sollte ziemlich einfach. Ursprünglich hatte ich acync Wrapper, Datenbank-basierte Ziele, usw. Aber ich ausgezogen habe alles bis auf das absolute Minimum und können nicht scheinen, damit es funktioniert!

Dies ist mein NLog.config-Datei:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      >

    <targets>
        <target xsi:type="File"
             name="nsec"
             fileName="${basedir}app_data/logs/nsec_${shortdate}.log"
             createDirs="true"
             layout="${longdate}|${level:uppercase=true}|${logger}|${aspnet-user-identity}|${message}"
             />
    </targets>

  <rules>
    <logger name="NSec" minlevel="Trace" writeTo="nsec"/> 
  </rules>
</nlog>

Wie Sie sehen können, es gibt nichts besonderes hier. Die Ziel-Datei geschrieben haben soll, um die ./App_Data/Logs-Verzeichnis, aber die meisten der Zeit, es wurde nichts geschrieben es. Manchmal was geschrieben wird an die Datei... Und das ist am meisten ärgerlich ist Teil des ganzen!

Lokal unter beiden Cassini und IIS Express die Protokolle perfekt funktionieren.

Gibt es alles, was ich brauche, um zu meinem web.config für NLog zu arbeiten? Ich bin auch nicht mit der ASP.NET wrapper!

Kennt jemand eine Inkompatibilität zwischen NLog und IIS8?

UPDATE

Ich habe Process Monitor auf dem server und erkannte nicht einmal einen einzigen Versuch gemacht wird, zu schreiben, zu Lesen, oder die Abfrage der log-Datei. Es sieht aus, als wenn NLog wurde ganz und gar ignoriert. Ich weiß, der NLog.config-Datei gelesen wird beim Start, weil wenn ich eine ungültige Konfiguration bekomme ich eine Fehlermeldung beim Zugriff auf meine Anwendung, so NLog ist das Parsen der Datei. Das problem ist, dass, obwohl es wird analysiert, und manchmal etwas bekommt angemeldet, die meiste Zeit passiert NICHTS, und, wie bestätigt, durch die Verwendung von Process Monitor, nicht einen einzigen Versuch gemacht wird, um den Zugriff/erstellen/schreiben der log-Datei.

Die Ironie ist, dass sich auf Process Monitor konnte ich sehen, die anderen IIS-Anwendungen schreiben, um Ihre eigenen NLog-Dateien ohne Probleme. Es ist nur diese bestimmte Anwendung, die sich nicht melden, aber nur in der Produktion Maschine!

  • Wie zum ausführen von " Process Monitor auf den server und sehen, ob es irgendwelche Berechtigungen fehlen, auf den Ziel-Ordner?
  • Hallo Uwe, dies ist ein Produktions-server.. ich will nicht führen Sie Process Monitor, gibt es... Aber ich kann versichern, dass der IIS-App-Domain die Rechte auf alle Ordner, wie es läuft mit einem bestimmten Benutzer-Identität. Wenn ich nicht bekommen kann es arbeiten, ich werde versuchen, duplizieren Sie die Virtuelle Maschine aus, und verwenden Sie Prozess-Monitor da, aber Azure macht es nicht einfach zu duplizieren VMs, in der Tat ist es, die meisten der Zeit, härter als das installieren von stratch!
  • Uwe, ich habe Process Monitor und es gibt nicht einmal einen einzigen Versuch zum schreiben der log-Datei!!! Es sieht aus, als wenn NLog wurde ganz und gar ignoriert. Ich aktualisiere die Frage...
  • Wie etwa die Protokollierung auf verschiedenen, nicht-Datei-basiertem Protokoll-Ziele (wie Ereignisprotokoll, oder ASP.NET Trace) innerhalb NLog, um zu sehen, ob es eine Datei-Ausgabe?
  • Ich hatte eine Datenbank-Ziel-Setups, aber die Anmeldung war so unberechenbar wie mit der Datei Ziel... ich werde es ändern der APP-POOL auf einen anderen, in denen es eine Anwendung, dass die Protokollierung ordnungsgemäß...
  • Ich fange an zu zweifeln, es ist eine NLog-problem. Die NSec-logger ist mit einem benutzerdefinierten HttpModule aufrufen, und ich glaube, dass es einfach NICHT unter IIS8, so dass das Protokoll eigentlich nie passiert! Nun, warum diese HttpModule läuft unter IIS 6, 7, Express und Cassini-aber nicht IIS8... ich denke, ich werde haben, zu schließen, diese Frage.
  • Ich hoffe, ich konnte Euch zumindest etwas helfen 🙂

InformationsquelleAutor Loudenvier | 2013-11-12
Schreibe einen Kommentar