環境:
コントローラーとアクションを備えた単純な 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 フレームワークに関する私の限られた知識に基づいて、それはナンセンスだと思います)。私が見逃している機微はありますか?