How do I setup ASP.NET MVC 2 with MySQL?

♀尐吖头ヾ 提交于 2019-11-26 10:15:16

问题


Is it possible to setup ASP.NET MVC 2 to work with a MySQL database?


回答1:


I'm assuming that you have Visual Studio Professional 2008, have access to an instance of MySQL server, and have moderate to advanced development experience. This MAY work with VS2008 Web edition, but not at all sure.

  1. If you haven't, install MySQL Connector for .NET (6.2.2.0 at the time of this write-up)
  2. Optional: install MySQL GUI Tools
  3. If you haven't, install MVC 2 RTM, or better yet, use Microsoft's Web Platform Installer. (UPDATE: MVC 2 has now been released for quite some time)
  4. Create an empty MySQL database. If you don't want to access your application with the MySQL root user account (insecure), create a user account and assign the appropriate privileges (outside the scope of this write-up).
  5. Create a new MVC 2 application in Visual Studio
  6. In the MVC 2 app, reference MySql.Web.dll. It will either be in your GAC, or in the folder that the MySQL Connector installer put it.
  7. Modify the connection strings portion of your 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 the membership portion of your 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.

    Modify the role manager portion of your 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.

    Modify the profile portion of your 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>
    

At this point, you ought to be able to run the app and have the default ASP.NET MVC 2 home page come up in your browser. However, it may be a better idea to first run the ASP.NET Web configuration Tool (in Visual Studio top menus: Project -> ASP.NET Configuration). Once the tool launches, check out each of the tabs; no errors = all good.

The configuration tool at Nathan Bridgewater's blog was essential to getting this working. Kudos, Nathan. Look for the "Configuration Tool" heading half way down the page.

The public key token on the MySql.web.dll that I've posted here ought not change any time soon. But in case you suspect a bad token string from copying and pasting or whatever, just use the Visual Studio command line to run: "sn -T [Path\to\your.dll]" in order to get the correct public key token.

There you have it, ASP.NET MVC 2 running over MySQL. Cheers!




回答2:


I belive at "10. Modify the profile portion of your web.config::"

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

type= has to be: type="MySql.Web.Profile.MySQLProfileProvider"

because in "MySql.Web.Security" I have not found any method MySQLProfileProvider. (but using Version 6.4.4. for .NET 4.0)

And at least, you have to create your own classes for creating the database tables, if there is no ready configured database. Harald



来源:https://stackoverflow.com/questions/2512852/how-do-i-setup-asp-net-mvc-2-with-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!