Ошибка с MySqlMebershipProvider в ASP.NET

вот уже два дня я пытаюсь решить эту ошибку в конфигурации веб-сайта asp.net - раздел Provider

Если вы нажмете «Тест», появится эта ошибка:

Управление провайдером Не удалось установить соединение с базой данных. Если вы еще не создали базу данных SQL Server, выйдите из инструмента администрирования веб-сайта, используйте служебную программу командной строки aspnet_regsql для создания и настройки базы данных, а затем вернитесь к этому инструменту, чтобы установить поставщика.

Моя веб-конфигурация выглядит так:

<connectionStrings>
    <remove name="mydbConnectionString"/>
    <add name="mydbConnectionString" connectionString="Server=localhost;Database=mydb;Uid=root;Pwd=root;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
<system.web>        
   <roleManager enabled="true" defaultProvider="MySQLRoleProvider" />
    <membership defaultProvider="MySqlMembershipProvider">
        <providers>
            <clear/>
            <add name="MySqlMembershipProvider" autogenerateschema="true"
                 type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=5.2.7.0, Culture=neutral,PublicKeyToken=c5687fc88969c44d"
                 connectionStringName="mydbConnectionString"
                 enablePasswordRetrieval="false"
                 enablePasswordReset="true"
                 requiresQuestionAndAnswer="false"
                 requiresUniqueEmail="false"
                 passwordFormat="Hashed"
                 maxInvalidPasswordAttempts="5"
                 minRequiredPasswordLength="6"
                 minRequiredNonalphanumericCharacters="0"
                 passwordAttemptWindow="10"
                 passwordStrengthRegularExpression=""
                 applicationName="LoginControl"
 />
        </providers>           
    </membership>

Ошибка для RoleProvider не отображается. Он отображается только тогда, когда я нажимаю «Тест» для MySqlMembershipProvier. Поэтому я думаю, что у моей строки подключения есть некоторые проблемы, но я не знаю, как это исправить. Кто-нибудь может мне помочь?

Большое спасибо...


person Nang    schedule 24.03.2011    source источник


Ответы (2)


Я предполагаю, что вам просто нужно сделать то, что указано в исключении: запустить эквивалент служебная программа aspnet_reqsql для MySQL для создания необходимых таблиц в вашей базе данных.

Бесстыдный плагин: проверьте Web.Config Role Provider на Codeplex, если вы хотите настроить роли без базы данных.

person Jakob Gade    schedule 24.03.2011
comment
Я проверил утилиту aspnet_reqsql, и она говорит, что она предназначена только для БД сервера MSSQL, и я не смог найти ту, которая предназначена для БД сервера MySQL. - person Nang; 24.03.2011
comment
Где вы взяли MySQLMembershipProvider? В документации должно быть что-то о том, как начать работу. - person Jakob Gade; 24.03.2011
comment
Я добавил в качестве ссылки MySql.Web.dll и MySql.Data.dll в папку Bin моего проекта. Я получил их из MySql Connector / net 5.2.7, который сейчас используется в моем проекте. Затем я мог бы использовать MySqlMembershipProvider и MySqlRoleProvider в моем web.config. - person Nang; 24.03.2011
comment
Я совсем не знаком с MySQL, но можете ли вы подключиться к базе данных обычным образом, то есть запросить там таблицу? - person Jakob Gade; 24.03.2011
comment
Да, я могу получить данные из своих таблиц. - person Nang; 24.03.2011

  1. aspnet_regsql работает только с SQL Server. Не с MySQL
  2. Чтобы установить таблицы членства / ролей / профилей, вам нужно будет вручную запустить файлы SQL из папки .NET Framework: {SYSDRIVE \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727}
  3. Как только вы это сделаете, вы можете проверить, не проблема с подключением.
person sajoshi    schedule 24.03.2011
comment
Я вручную запустил файлы сценариев из MySQL Connector 5.2.7 в MySQL Qurey Browser. Я могу создавать роли и пользователей в инструментах администрирования веб-сайта Asp.net. Но на вкладке «Провайдер» по-прежнему отображается та же ошибка, когда я нажимаю «Тест». - person Nang; 24.03.2011