2016-05-16 3 views
1

Контекст:CORS проблема при добавлении Log4Net CONFIG

У меня есть простой 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

Спасибо. Это была проблема, которая у меня была. –

0

использовать внешний файл настроек для избежания проблемы:

при запуске, звоните:

XmlConfigurator.Configure(); 

В вашем Web.config указать log4net.Config в AppSettings:

<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> 

 Смежные вопросы

  • Нет связанных вопросов^_^