Поставщик ролей по умолчанию не найден в IIS 7 под управлением.NET 4

Всем доброе утро,

Я пытаюсь внедрить свои собственные поставщики членства и ролей в мое веб-приложение, которое я реализовал на веб-сайте по умолчанию в моем экземпляре IIS 7. Мое веб-приложение работает в пуле приложений.NET 4.

Однако после настройки соответствующего web.config я получаю следующую ошибку:

Parser Error Message: Default Role Provider could not be found.

Я включил следующий блок кода в раздел system.web соответствующего веб-приложения web.config:

<membership defaultProvider="CustomMembershipProvider" userIsOnlineTimeWindow="20">
 <providers>
  <clear/>
  <add name="CustomMembershipProvider" type="CustomProviders.CustomMembershipProvider,   
     CustomProviders, Version=3.0.0.0, Culture=neutral, 
     PublicKeyToken=3563615169617648" applicationName="/"/>
 </providers>
</membership>

<roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
   <clear/>
   <add name="CustomRoleProvider" type="CustomProviders.CustomRoleProvider, 
     CustomProviders, Version=3.0.0.0, Culture=neutral, 
     PublicKeyToken=3563615169617648" applicationName="/"/>
  </providers>
</roleManager>

Теперь я видел всевозможные объяснения того, как решить ошибку, о которой я упоминал ранее. Большинство из них, похоже, предлагают добавить теги в блоки моего провайдера. Некоторые, кажется, предлагают мне удалить менеджер ролей из machine.config. И некоторые все еще, кажется, предлагают не удалять или добавлять что-либо. Последний подход, похоже, не учитывает, что мое веб-приложение запускается из IIS, а не с локального компьютера.

В конце концов, я попробовал эти подходы безрезультатно. Может кто-нибудь объяснить мне, как я могу пройти эту ошибку? Заранее спасибо!

3 ответа

Я получил эту ошибку при использовании веб-приложения MVC 4 по умолчанию. Мне пришлось добавить следующее в web.config и ошибка исчезла. Под <system.webServer>добавлять

<modules>
 <remove name="RoleManager"/>
</modules>

Две вещи:

enabled="false" должно быть enabled="true"

И я не убежден applicationName="/" полезно, но может и не навредить.

Я получил это сообщение об ошибке при добавлении приложения в IIS 8 на существующий веб-сайт (щелкните правой кнопкой мыши веб-сайт в IIS, выберите "Добавить приложение"). В приложении web.config был только тег по умолчанию, который удалял провайдера по умолчанию, определенного в web.config веб-сайта.

Я полностью удалил теги RoleManager из приложения web.config, а затем веб-сайт и приложение начали работать правильно.

Другие вопросы по тегам