SecurityException после добавления ELMAH в проект WCF - PullRequest
2 голосов
/ 25 марта 2010

У меня проблема с сайтом WCF (.Net 3.5), использующим ELMAH на IIS 7.5. Это сообщение об исключении:

System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Чтобы убедиться, что это была комбинация WCF и ELMAH на IIS7.5, я создал новый проект службы WCF в VS2008 и новое приложение на сайте IIS 7.5. Я опубликовал его и убедился, что все в порядке. Затем я добавил DLL ELMAH. Все еще в порядке. Затем добавил ссылки ELMAH configSection на Web.config. Все еще в порядке. Затем я добавил материал ELMAH в httpHandlers и httpModules в system.web (да, я знаю, что это не для 7.5). Все еще в порядке. Затем я добавил это к обработчикам и модулям в system.webServer:

<handlers>
    :
  <add name="Elmah" verb="POST,GET,HEAD" 
       path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

<modules>
    :
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />

А потом я получил исключение безопасности. Я не сделал никаких других изменений конфигурации.

Все работает с помощью веб-сервера VS dev. Машина разработки 2008 R2 x64 с установленной VS 2008 SP1. Служба WCF построена для x86 (потому что оригинальный проект был). ELMAH - это версия .Net 3.5 x86. Пул приложений IIS7.5 настроен на разрешение 32-разрядных.

Есть идеи, что мне нужно сделать, чтобы это заработало?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2010

В моем случае мне пришлось установить «load User Profile = True» в пуле приложений, чтобы он работал.

Шаги:

Из списка пулов приложений перейдите в раздел «Дополнительные параметры», «Модель процесса» и установите для «Загрузить профиль пользователя» значение «Истина».

0 голосов
/ 05 июля 2010

Вам нужно будет перейти к Добавить управляемый обработчик в IIS Manager для вашего виртуального веб-каталога.

  • Путь запроса будет: elmah.axd
  • Тип будет: Elmah.ErrorLogPageFactory, Elmah
  • Имя: Anything you want it to be identified with.

Примечание. Эти параметры будут удаляться при каждой публикации изменений в Visual Studio. Поэтому вам придется добавить его снова.

...