2

次のlog4net構成があります。

<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
    <!-- Pattern to output the caller's file name and line number -->
    <conversionPattern value="%date [%thread] %-5level %ndc - %message%newline" />
  </layout>
</appender>

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <file value="C:/logs/mysystem.log" />
  <appendToFile value="true" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <maximumFileSize value="1024MB" />
  <maxSizeRollBackups value="30" />

  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level - %message%newline" />
  </layout>
</appender>

<root>
  <level value="DEBUG" />
  <appender-ref ref="Console" />
  <appender-ref ref="RollingFile" />
</root>

ローカルマシンでは正常に動作しますが、Webサイトをリモートサーバー(IIS 6.0)に展開すると、システムが実行されているにもかかわらず、ログファイルが作成されません。

AppPoolIDは「ネットワークサービス」に構成されています。

何か案が?

4

2 に答える 2

2

アプリケーションプールが「ネットワークサービス」に構成されている場合、ファイルシステムに書き込むための十分な権限がないため、ログファイルは作成されません。

アプリプールのIDを「ローカルシステム」に設定すると、正常に機能します。

于 2012-08-28T15:11:15.087 に答える
0

原則としてマシン名を使用してフォルダにACEを作成することにより、ログフォルダへのアクセス「ネットワークサービス」アクセスを許可できます。プールIDを「ローカルシステム」に変更すると、望ましくない影響が生じる可能性があるため、それを回避します。

別のアプローチは、ドメインユーザーを作成し、このユーザーをマシンIIS_WPGグループに追加することです。このユーザーを使用するようにプールIDを変更します。次に、このユーザーに適切なフォルダーアクセスを許可できます。

于 2012-08-28T15:26:17.013 に答える