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

发布于 2024-08-26 15:25:44 字数 42 浏览 9 评论 0 原文

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

勿忘心安 2024-09-02 15:25:44

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

  1. 如果尚未安装,请安装 MySQL Connector for .NET(6.2.2.0,位于 如果
  2. 可选:安装 MySQL GUI Tools
  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 连接器安装程序放置它的文件夹中。
  7. 修改 web.config 的连接字符串部分:

     ; 
        <删除名称=“LocalMySqlServer”/> 
        <添加名称=“MySqlMembershipConnection”
             connectionString="数据源=[MySql服务器主机名];
                               userid=[用户];
                               密码=[密码];
                               数据库=[数据库名称];" 
             providerName =“MySql.Data.MySqlClient”/>
      
    

    8.

    修改 web.config 的成员资格部分:

     ; 
        <提供商>  
          <清除>>  
          <添加名称=“MySqlMembershipProvider”  
               类型=“MySql.Web.Security.MySQLMembershipProvider,MySql.Web, 
                     版本=6.2.2.0,文化=中立, 
                     公钥令牌=c5687fc88969c44d”  
               连接字符串名称=“MySqlMembershipConnection”  
               启用密码检索=“假”  
               启用密码重置=“真”  
               需要问题和答案=“假”  
               需要UniqueEmail =“true”  
               密码格式=“散列”  
               maxInvalidPasswordAttempts =“5”  
               minRequiredPasswordLength =“6”  
               minRequiredNonalphanumericCharacters =“0”  
               密码尝试窗口=“10”  
               应用程序名称=“/”  
               autogenerateschema="true"/>  
            
          
    

    9.

    修改 web.config 的角色管理器部分:

     ;  
        <提供商>  
          <清除>>  
          <添加连接字符串名称=“MySqlMembershipConnection”  
               应用程序名称=“/”  
               名称=“MySqlRoleProvider”  
               类型=“MySql.Web.Security.MySQLRoleProvider,MySql.Web, 
                     版本=6.2.2.0,文化=中立, 
                     公钥令牌=c5687fc88969c44d”  
               autogenerateschema="true"/>  
          
      
    

    10。

    修改 web.config 的配置文件部分:

    <前><代码> <配置文件>
    <提供商>
    <清除>>
    <添加类型=“MySql.Web.Security.MySQLProfileProvider,MySql.Web,
    版本=6.2.2.0,文化=中立,
    公钥令牌=c5687fc88969c44d”
    名称=“MySqlProfileProvider”
    应用程序名称=“/”
    连接字符串名称=“MySqlMembershipConnection”
    autogenerateschema="true"/>

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

配置工具位于 Nathan Bridgewater 的博客对于实现这项工作至关重要。荣誉,内森。在页面的中间位置查找“配置工具”标题。

我在此处发布的 MySql.web.dll 上的公钥令牌不应很快发生更改。但如果您怀疑复制和粘贴或其他原因导致了错误的令牌字符串,只需使用 Visual Studio 命令行运行:“sn -T [Path\to\your.dll]”即可获取正确的公钥令牌。

现在您已经得到了运行在 MySQL 上的 ASP.NET MVC 2。干杯!

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!

寂寞花火° 2024-09-02 15:25:44

我相信“10.修改你的 web.config 的配置文件部分::”

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

类型= 必须是:
类型=“MySql.Web.Profile.MySQLProfileProvider”

因为在“MySql.Web.Security”中我没有找到任何方法MySQLProfileProvider。
(但对于 .NET 4.0 使用版本 6.4.4)

并且至少,如果没有现成的配置数据库,您必须创建自己的类来创建数据库表。
哈拉尔德

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文