У меня была такая же проблема, как и у вас:
- ASP.NET MVC 3
- .NET 4
- IIS 7
- Режим разблокировки
Я попытался изменить каталоги и изменить разрешения, но безрезультатно. Я даже попытался включить внутреннюю регистрацию, но даже это не сработало! Никаких сбоев, никаких исключений, ничего!
Проведя дополнительное расследование, я нашел решение. По какой-то причине NLog не загружал файл конфигурации ВСЕ. Я понял это после того, как программно включил внутреннюю регистрацию. Внутреннее ведение журнала сообщило об этом:
2012-02-13 11:34:40.3181 Debug Targets for MyMvcController by level:
2012-02-13 11:34:40.3181 Debug Trace =>
2012-02-13 11:34:40.3181 Debug Debug =>
2012-02-13 11:34:40.3181 Debug Info =>
2012-02-13 11:34:40.3181 Debug Warn =>
2012-02-13 11:34:40.3181 Debug Error =>
2012-02-13 11:34:40.3181 Debug Fatal =>
По сути, это означало, что ни для одного из уровней журнала не было задано ни одной цели! Определенно не правильно!
Мой файл конфигурации NLog был настолько прост, насколько это возможно (и ему было присвоено значение Копировать в выходной каталог):
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="true">
<targets>
<target name="file" xsi:type="File" fileName="${basedir}/MyApplication.log" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file" />
</rules>
</nlog>
Я до сих пор точно не знаю , почему это происходило, но перемещение конфигурации NLog в web.config напрямую решило проблему.