2013-04-17 14 views
6

"NT AUTHORITY \ NETWORK SERVICE"の資格情報を使用してWindowsサービスを開始すると、NLogで奇妙な問題が発生します。ファイル名には何も記録されませんドットが含まれています。私が思いついたいくつかのグーグル後NLogはファイル名にcontainsigのドットを付けて書き込みません

<targets> 
    <target xsi:type="File" 
    name="f" 
    fileName="${basedir}/logs/${shortdate}.txt" 
    encoding="utf-8" 
    concurrentWrites="true" 
    keepFileOpen="false" 
    layout="${longdate} ${uppercase:${level}} ${message}"/> 
</targets> 
<rules> 
    <logger name="*" minlevel="Trace" writeTo="f" /> 
</rules> 

をし、設定を試して:.NET Framework 3.5のSP1の機能が有効になって

私は私のWinServer 2008 R2の標準のWindowsサービスを実行している、NLog.configは以下の通りです。 fileNameパラメータにファイル拡張子を含めないことで回避策を講じましたが、うまくいきました。問題は解決しましたが、まともな解決策のようには見えません。

そして、問題はもっと奇妙な魔法のように見えるのは、私の2番目のWindowsサービス(これは同じマシン上で実行されている)のログファイル拡張子を使って問題を解決することができたということですプロジェクトオプションのアセンブリ情報を変更するだけです)。

アイデア?

答えて

13

<nlog 
    internalLogFile="c:\temp\nlogproblems.txt" 
    throwExceptions="true" 
    xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

NLogの内部ログファイルを有効にした後、私はlogsフォルダのアクセス許可を修正する必要がありますという結論に至ったUnathorizedAccessException

2013-04-17 11:06:14.0445 Error Exception in asynchronous handler 
    NLog.NLogRuntimeException: Exception occurred in NLog ---> 
    System.UnauthorizedAccessException: Access is denied. 
    (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 

をキャッチするために管理しました。

最後に、奇妙な魔法はなく、ちょうどNETWORK SERVICElogsというフォルダに書き込む必要がありました。

0

私の場合は、アプリケーションプールを実行していたユーザーでした。

私の場合はIHTTPハンドラを実行していると私はのprocessRequestから呼んでいたとのprocessRequest自体からいくつかの理由で、それは私が

を得たサブメソッドからまだうまく働いた他のmehtodsを有していた、いくつかのケースでは、特定のユーザーを必要とするようです
Exception in asynchronous handler 
    NLog.NLogRuntimeException: Exception occurred in NLog ---> 
    System.UnauthorizedAccessException: Access is denied. 
    (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 

と7kun答えを読んだ後、私はみんなフルコントロールを与え、それが働いていた、その後、こんにちは本物の不足しているユーザー

+0

を見つけるために、変更は、あなたは誰も完全な制御を与えたかを教えてくださいできますか? – tabby

+0

このチュートリアル(https://www.youtube.com/watch?v=ytmYVbMEsGg)を参照してください。特定のユーザータイプ「Everyone」ではなく、 – bresleveloper

関連する問題