0

log4netを使用してAPPDATA環境変数にデータを記録する必要がある.NETWebアプリケーションがあります。私のXP開発コンピューターでは問題なく動作しますが、Windows 2003サーバーに展開すると、ログは代わりにC:\に書き込まれます。IISアプリプールを実行するためにネットワークサービスと自分のユーザーアカウント(管理者権限を持つ)の両方を使用してみましたが、違いはありません。

log4netアペンダー構成は次のようになります。

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <file value="${APPDATA}\appname\log."/>
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <staticLogFileName value="false" />
  <datePattern value="'.'yyyy-MM-dd'.txt'" />
  <maxSizeRollBackups value="14" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date&#9;%-5level&#9;%message%newline" />
  </layout>
</appender>

設定を次のように変更すると機能するため、書き込み権限に問題はないと思います。

<file value="c:\Documents and Settings\username\Application Data\appname\log."/>

誰もが何が間違っているのか、そしてそれを修正する方法を知っていますか?

4

1 に答える 1

0

APPDATAでは、ユーザープロファイルが作成されている必要があります。これは、ネットワークサービスアカウントには当てはまりません。明示的なIDでアプリケーションプールを実行する場合、プロファイルを作成するには、このIDが少なくとも1回ログインしている必要があると思います。

Webアプリケーションにユーザープロファイルが存在することに依存せず、ログファイル用に他の場所を選択することをお勧めします。

于 2011-09-07T09:11:19.963 に答える