Warum kann ich $ {basedir} nlog.config nicht auf meinem Produktionsserver verwenden? Wenn ich fileName="${basedir}/logs/${shortdate}.log"
verwende, protokolliert nlog die Nachrichteninformationen nicht, aber wenn ich zu etwas wie fileName="C:/logs/${shortdate}.log"
wechsel, protokolliert es die Nachrichteninformation
meine nlog.config:
%Vor%Controller:
%Vor%Dieses Problem hängt mit der Dateiberechtigung zusammen. Kurzgeschichte: Der Benutzer, mit dem die Webanwendung ausgeführt wird, hat keine Berechtigung zum Schreiben der Protokolldateien.
Je nach Version von .NET und der Version von IIS gibt es eine Vielzahl von Benutzern.
Für IIS 6 würde ich sagen, dass die Webanwendung als NETWORK SERVICE
account ausgeführt wird.
Daher müssen Sie diesem Benutzer die Berechtigung zum Schreiben / Ändern des Ordners logs
erteilen (was vermutlich ein Unterordner des Webstamms ist). Wenn Sie möchten, dass der Ordner logs
automatisch von NLog erstellt wird, müssen Sie diese Berechtigungen stattdessen dem Webstamm erteilen.
Tags und Links asp.net-mvc c# nlog