log4net, бросающий Исключение безопасности в ASP.NET веб-приложение MVC

Я записал 3 ASP.net веб-приложения MVC, и все развертываются на общих хостинг-серверах с моим ISP.

Все 3 приложения очень похожи в конфигурации и настройках. 1-е приложение развертывается на другом сервере, чем 2-е и 3-е. 1-е приложение не дает мне ошибок.

2-е и 3-и приложения выкладывают следующий SecurityException несколько: случайным образом:

alt text

Ссылка

Текст исключения:

 Security Exception
Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +58
   System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) +99


Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3082 

Я получаю вышеупомянутую ошибку в первый раз, когда я поразил страницу после развертывания или редактирования web.config. Однако на последующих перезагрузках страницы я не получаю его. Эти 2 веб-сайта будут прекрасны снова для остальной части дня, но затем следующим утром я получаю ту же ошибку снова.

Ошибки действительно последовательно появляются после того, как я редактирую web.config, который я предполагаю, что действительно ли принуждение является перекомпилировать?

Помогите. Я не уверен, какова проблема. Кажется, что это связано с настройками безопасности в IIS. Все 3 веб-приложения настраиваются и развертываются очень похожим способом, за исключением того, что 1-е веб-приложение, которое не дает ошибку, находится на совершенно другом сервере.

10
задан Glorfindel 13 June 2019 в 07:04
поделиться

1 ответ

Итак, оказывается, что причина вышеупомянутого SecurityException - тройная

  • , у моего интернет-провайдера есть ASP.net настроен для работы в режиме среднего доверия на своих новых серверах и в режиме полного доверия на своих старых серверах. Мои веб-приложения разделены между этими двумя серверами, поэтому я получаю разное поведение между приложениями, даже если они настроены точно так же

  • . Я использую log4net для регистрации ошибок, а в моем Global.asax , у меня есть следующее:

     protected void Application_Start () 
     {
    RegisterRoutes (RouteTable.Routes); 
    log4net.Config.XmlConfigurator.Configure (); 
    log.Debug ("Ведение журнала инициализировано."); 
    } 
     

    Эта строка - log4net.Config.XmlConfigurator.Configure (); - это что выбрасывает вышеуказанное исключение. Это происходит только один раз при запуске приложения или перезапуске, если они web.config изменены. Вот почему я не мог понять, откуда взялась проблема.

  • Мне пришлось добавить requirePermission = "false" в configSection log4net в web.config :

     

Теперь, если бы я работал в режиме среднего доверия, я бы поднял эти проблемы. Вы можете заставить свое приложение работать в режиме среднего доверия, добавив в my web.config следующее:

  <system.web>
     <trust level="Medium"/>
  </system.web>

Заставив мое приложение работать в режиме среднего доверия, я обнаружил исходное исключение в dev именно там, где оно возникло, и решил, что выясни, что там было не так ..

20
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: