2010-03-25 5 views
27

Возможно ли настроить ASP.NET MVC 2 для работы с базой данных MySQL?Как настроить ASP.NET MVC 2 с MySQL?

+3

Ведение блога прекрасно и подробно описано в FAQ, однако вам нужно задать свой вопрос в вопросе, а затем отправить ответ в качестве ответа. Это позволяет людям +/- ответить и опубликовать свои собственные ответы. –

+0

Хороший пост. Я бы сказал, что это относится к любому приложению asp.net, а не только к ASP.NET MVC. – Craig

+0

Возьмите мое редактирование, возьмите все после первой строки и опубликуйте как ответ, а затем удалите его из вопроса. Кроме того, dont -1 он просто потому, что он не понял подход к блогов на SO, многие из новичков считают его против правил. Он выяснит это –

ответ

36

Я предполагаю, что у вас есть Visual Studio Professional 2008, есть доступ к экземпляру сервера MySQL и имеет опыт работы от умеренной до продвинутой. Это МОЖЕТ работать с веб-изданием VS2008, но совсем не уверен.

  1. Если вы не установите MySQL Connector for .NET (6.2.2.0 во время этой записи)
  2. Дополнительно: установка MySQL GUI Tools
  3. Если вы не установите MVC 2 RTM, или еще лучше, используйте Microsoft Web Platform Installer. (UPDATE: MVC 2 в настоящее время выпущен на некоторое время)
  4. Создайте пустую базу данных MySQL. Если вы не хотите получать доступ к своему приложению с учетной записью пользователя root root (небезопасно), создайте учетную запись пользователя и назначьте соответствующие привилегии (за пределами этой записи).
  5. Создайте новое приложение MVC 2 в Visual Studio
  6. В приложении MVC 2 обратитесь к MySql.Web.dll. Он будет либо в вашем GAC, либо в папке, которую установил установщик MySQL Connector.
  7. Изменение строки подключения часть вашего web.config:

    <connectionStrings> 
        <remove name="LocalMySqlServer"/> 
        <add name="MySqlMembershipConnection" 
         connectionString="Data Source=[MySql server host name]; 
              userid=[user]; 
              password=[password]; 
              database=[database name];" 
         providerName="MySql.Data.MySqlClient"/> 
        </connectionStrings> 
    

    8.

    Modify членскую часть вашего web.config:

    <membership defaultProvider="MySqlMembershipProvider"> 
        <providers> 
         <clear/> 
         <add name="MySqlMembershipProvider" 
          type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          connectionStringName="MySqlMembershipConnection" 
          enablePasswordRetrieval="false" 
          enablePasswordReset="true" 
          requiresQuestionAndAnswer="false" 
          requiresUniqueEmail="true" 
          passwordFormat="Hashed" 
          maxInvalidPasswordAttempts="5" 
          minRequiredPasswordLength="6" 
          minRequiredNonalphanumericCharacters="0" 
          passwordAttemptWindow="10" 
          applicationName="/" 
          autogenerateschema="true"/> 
         </providers> 
        </membership> 
    

    9.

    Измените часть роли менеджера вашего web.config:

    <roleManager enabled="true" defaultProvider="MySqlRoleProvider"> 
        <providers> 
         <clear /> 
         <add connectionStringName="MySqlMembershipConnection" 
          applicationName="/" 
          name="MySqlRoleProvider" 
          type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          autogenerateschema="true"/> 
        </providers> 
        </roleManager> 
    

    10.

    Изменение профиля часть вашего web.config:

    <profile> 
        <providers> 
         <clear/> 
         <add type="MySql.Web.Security.MySQLProfileProvider, MySql.Web, 
           Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
          name="MySqlProfileProvider" 
          applicationName="/" 
          connectionStringName="MySqlMembershipConnection" 
          autogenerateschema="true"/> 
        </providers> 
        </profile> 
    

На данный момент, вы должны быть в состоянии запустить приложение и иметь по умолчанию ASP Домашняя страница .NET MVC 2 появляется в вашем браузере. Однако лучше сначала запустить Средство настройки веб-страницы ASP.NET (в верхних меню Visual Studio: Project -> Конфигурация ASP.NET). После запуска инструмента проверьте каждую вкладку; нет ошибок = все хорошо.

Инструмент настройки на Nathan Bridgewater's blog был необходим для обеспечения этой работы. Кудос, Натан. Ищите «Инструмент настройки» на полпути вниз по странице.

Значок открытого ключа на MySql.web.dll, который я опубликовал здесь, не должен скоро меняться. Но если вы подозреваете, что плохая строка токена от копирования и вставки или что-то еще, просто используйте командную строку Visual Studio для запуска: «sn -T [Path \ to \ your.dll]», чтобы получить правильный токен открытого ключа.

У вас есть это, ASP.NET MVC 2 работает над MySQL. Ура!

+1

Спасибо NovaJoe! Недавно я скопировал этот инструмент на свою страницу, чтобы упростить его поиск. http://www.integratedwebsystems.com/tools-source/ – Nathan

+0

Noice! И благодаря ВАМ, мой друг. Это была тяжелая битва, и ваш инструмент сделал это возможным. Натан за победу! – NovaJoe

+2

Удивительный! Я думаю, что я создам новую учетную запись в StackOverflow, чтобы снова проголосовать за вас! ;) –

1

Я верю в "10. Измените часть профиля вашего веб-сайта.конфиг ::»

<profile> 
    <providers>   
    <clear /> ... 
     <add type="MySql.Web.Security.MySQLProfileProvider,...... 

тип = должен быть: типа = "MySql.Web.Profile.MySQLProfileProvider"

, потому что в "MySql.Web.Security" Я не нашел ни одного метода MySQLProfileProvider. (но с использованием версии 6.4.4. для .NET 4.0)

И по крайней мере, вы должны создать свои собственные классы для создания таблиц базы данных, если нет готовых настроен базы данных. Harald

+0

Хорошее примечание. Спасибо HL1234. Я не проверяю это, но это может быть и опечатка. Однако, возможно, это изменилось пространство имен. Не уверен. – NovaJoe

+1

Мне нужно было сделать это изменение, чтобы оно работало. – AverageMarcus

Смежные вопросы