SimpleMembershipProvider не работает
Я начал новый интернет-проект с VS2012 и стараюсь немного перестроить проект, и я не могу заставить SimpleMemberhsipProvider работать. В принципе, все, что я сделал, - это перемещение объектов моделей в основной проект вместе с несколькими другими элементами. Я реализовал Ninject и пытаюсь немного абстрагировать Entity, используя шаблон репозитория для получения моих данных. Мне действительно не кажется, что я сильно изменился с текущим проектом, но по какой-то причине, когда я запускаю приложение, я получаю:
{ "Функция Role Manager не включена." }
ActionFilter, предоставляемый инфраструктурой, является причиной возникновения ошибки, когда:
WebSecurity.InitializeDatabaseConnection( "DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
.
Вот некоторые из stacktrace:
[ProviderException: функция Role Manager не включена.]
System.Web.Security.Roles.EnsureEnabled() +9561885
System.Web.Security.Roles.get_Provider() +8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, Строка userNameColumn, Boolean autoCreateTables) +100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor() в c:\Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Инфраструктура\Filters\InitializeSimpleMembershipAttribute.cs: 42
[InvalidOperationException: простая базовая база данных ASP.NET не может быть инициализирована. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkId=256588]
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor() в c:\Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Инфраструктура\Filters\InitializeSimpleMembershipAttribute.cs: 46
Я размещаю код в github по следующей ссылке https://github.com/keroger2k/InoutBoard
Ответы
Ответ 1
Первый способ
Проверьте ответ sphair вне (в текущем потоке).
Второй способ
Добавьте следующие сборки в web.config
:
<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="WebMatrix.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>
</system.web>
Обновление
Сборка WebMatrix.WebData
содержит метод запуска для инициализации поставщиков членства/роли и включения RoleManager (PreApplicationStartCode.Start
). Но ASP.NET не смог найти это для запуска в вашем случае. Добавляя эти две строки кода, мы заставляем ASP.NET искать эти сборки для PreApplicationStartMethodAttribute(s)
.
Ответ 2
В случае, если другие получают эту ошибку, и вышеупомянутое решение не работает, как в моем случае. Он сказал недействительный дочерний объект, когда я попытался добавить разметку сборок. Мне нужно было указать теги roleManager и member, как показано ниже. Как только я это сделал, работала база данных обновлений.
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider"
type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
Ответ 3
У меня была такая же ошибка в моей хостинговой компании (WinHost.com - они отличные BTW).
Моим решением было добавить в web.config:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>
Ответ 4
Вместо того, чтобы добавлять сборки в web.config, как предлагает Мехди Голчин, альтернативой является изменение ссылок на сборки в WebMatrix.Data и WebMatrix.WebData для CopyLocal = True.
Ответ 5
добавьте ключ к Web.Config в качестве страницы:
http://devbla.wordpress.com/2013/07/03/corrigindo-o-erro-no-aspnet-the-role-manager-feature-has-not-been-enabled/
[] 's