デバッグ目的でログファイルを書き込むためにnlogを使用しています。現在、ログファイルの場所は次のように設定されています。
<target
name="file"
xsi:type="File"
fileName="${specialfolder:folder=LocalApplicationData}/x/y.log"
ただし、これにより、asp.net / IISがアカウントで実行されている場合に予想されるように、ファイルがでc:\x\y.log
はなく、に書き込まれることになります。%windir%\ServiceProfiles\NetworkService\AppData\Local\x\y.log
NETWORK SERVICE
Webアプリケーションからの値をチェックするEnvironment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
と、空/ヌルの文字列が生成されます。これは、少なくとも、ログがルートで終了する理由を説明しています。
だから本当に2つの質問:
NETWORK SERVICE
このパスを正しく解決するアカウントで作成および実行されているサービスがあります。この特別なフォルダーに値が返されないようなasp.net/IISの特別な点は何ですか?
NETWORK SERVICE
私のasp.netプロセスがアカウントで実行されている場合、ログを書き込むための安全で賢明な場所はどこにありますか?