如何使用MySQL设置ASP.NET MVC 2?

Nov*_*Joe 27 mysql asp.net-mvc asp.net-membership mysql-connector

是否可以设置ASP.NET MVC 2以使用MySQL数据库?

Nov*_*Joe 36

我假设你有Visual Studio Professional 2008,可以访问MySQL服务器的实例,并具有中等到高级的开发经验.这可能适用于VS2008网络版,但完全不确定.

  1. 如果还没有,请安装MySQL Connector for .NET(在本次编写时为6.2.2.0)
  2. 可选:安装MySQL GUI工具
  3. 如果还没有,请安装MVC 2 RTM,或者更好,使用Microsoft的Web平台安装程序.(更新: MVC 2现已发布一段时间了)
  4. 创建一个空的MySQL数据库.如果您不想使用MySQL root用户帐户(不安全)访问您的应用程序,请创建一个用户帐户并分配相应的权限(在此记录范围之外).
  5. 在Visual Studio中创建一个新的MVC 2应用程序
  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>
    
    Run Code Online (Sandbox Code Playgroud)

    8.

    修改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>  
    
    Run Code Online (Sandbox Code Playgroud)

    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>
    
    Run Code Online (Sandbox Code Playgroud)

    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>
    
    Run Code Online (Sandbox Code Playgroud)

此时,您应该能够运行该应用程序并在浏览器中显示默认的ASP.NET MVC 2主页.但是,首先运行ASP.NET Web配置工具(在Visual Studio顶级菜单中:Project - > ASP.NET Configuration)可能更好.工具启动后,检查每个选项卡; 没有错误=一切都好.

Nathan Bridgewater博客上的配置工具对于实现这一目标至关重要.荣誉,内森.在页面中间查找"配置工具"标题.

我在这里发布的MySql.web.dll上的公钥令牌不应该很快改变.但是如果您怀疑复制和粘贴的令牌字符串不正确,只需使用Visual Studio命令行运行:"sn -T [Path\to\your.dll]"以获取正确的公钥令牌.

你有它,ASP.NET MVC 2运行在MySQL上.干杯!

  • 真棒!我想我会在StackOverflow上创建一个新帐户再次投票给你!;) (2认同)