2016-05-16 77 views
1

上下文時:CORS問題添加log4net的配置

我有一個控制器和一個動作一個簡單的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框架的有限知識,我會說這是無意義的)。我錯過了一個微妙的東西嗎?

+0

我的猜測是log4net配置導致了一個異常,導致500響應沒有CORS頭。找出例外情況。 – user1620220

+0

你的'log4net'標籤沒有關閉,是一個錯字? – stuartd

+0

@stuartd,是的這是一個複製粘貼錯誤。我在我的代碼中。爲此道歉。 –

回答

1

我看着我的項目的webconfig並有部分從工作web.config

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

也許你錯過了configSection

+0

謝謝。 Thant是我的問題。 –

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>