1

環境:

コントローラーとアクションを備えた単純な Web API プロジェクトがあります。各リクエストのヘッダーに、認証トークンを追加します。すべてが期待どおりに機能します。いくつかの資格情報に基づいてトークンを要求し、それを使用して HTTP 要求を正常に行うことができます。

問題: web.config に以下を追加すると:

<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <file value="logfile.txt" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date: %-5level – %message%newline" />
  </layout>
</appender>
<root>
  <level value="DEBUG" />
  <appender-ref ref="FileAppender" />
</root>
</log4net>

次のエラーが表示されます。

XMLHttpRequest cannot load http://localhost:4042/token. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 500.

log4net の構成を削除すると、すべてが期待どおりに機能します。

注:リクエストにヘッダーを追加する web.config の設定はありません。

Startup.csは、私が指定したプロジェクトの唯一のポイントです。

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

質問: log4net 構成は、プリフライト リクエストとどのように関連していますか? (ASP.NET フレームワークに関する私の限られた知識に基づいて、それはナンセンスだと思います)。私が見逃している機微はありますか?

4

2 に答える 2

1

私は自分のプロジェクトの webconfig を調べましたが、作業中の一部がありますweb.config

   <configSections> 
         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
       </configSections> 
       <log4net> 
         <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
          ...
        </log4net> 

多分あなたは逃したconfigSection

于 2016-05-16T13:08:22.580 に答える
0

問題を回避するために外部設定ファイルを使用します。

起動時に、次を呼び出します。

XmlConfigurator.Configure();

Web.config で、appSettings に log4net.Config を指定します。

<add key="log4net.Config" value="Log.config" />

Log.config ファイルに構成を入れます。

<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <file value="logfile.txt" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date: %-5level – %message%newline" />
  </layout>
</appender>
<root>
  <level value="DEBUG" />
  <appender-ref ref="FileAppender" />
</root>
<log4net>
于 2016-05-16T13:09:28.930 に答える