Хорошо, у меня возникла очень странная проблема при развертывании одного из наших веб-приложений на наших живых серверах.
Наше приложение использует log4net для регистрации большого количества действий, и через пару часов после развертывания мы получаем следующее исключение.
Не удалось загрузить файл или сборку 'log4net, Версия = 1.2.9.0, Культура = нейтральная, PublicKeyToken = b32731d11ce58905' или одна из ее зависимостей. Доступ запрещен.
Вот соответствующие дополнения web.config, которые я использую.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\SomeLocation\Errorlog"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Size"/>
<param name="maxSizeRollBackups" value="-1" />
<param name="maximumFileSize" value="100MB" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<appender name="BookingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\SomeLocation\BookingInfoLog"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Size"/>
<param name="maxSizeRollBackups" value="-1" />
<param name="maximumFileSize" value="100MB" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="BookingLogFileAppender"/>
<appender-ref ref="ErrorLogFileAppender"/>
</root>
</log4net>
Он отлично работает на наших локальных машинах и на сервере разработки, но не работает.
Между прочим, кажется, что он выходит из строя после запуска JIT-компилятора на сервере после обновления web.config или перезагрузки пула приложений, или даже через длительный период времени!
ОБНОВЛЕНИЕ: Наши действующие серверы управляют всеми сайтами из общего ресурса. Мне удалось воспроизвести эту проблему на другом сервере, на котором запущено приложение из общего ресурса. При настройке сайта для запуска с локального диска проблема исчезает, но наш хостинг требует, чтобы мы запускались с общего ресурса. Любые идеи, почему у log4net будут проблемы с разрешениями, запущенные из общего ресурса. Снова приложение запускается в первый раз, пока не произойдет другая JIT-компиляция