是否可以设置 ASP.NET MVC 2 以使用 MySQL 数据库?
2 回答
我假设您拥有 Visual Studio Professional 2008,可以访问 MySQL 服务器实例,并且具有中等到高级的开发经验。这可能适用于 VS2008 Web 版,但完全不确定。
- 如果还没有,请安装MySQL Connector for .NET(撰写本文时为 6.2.2.0)
- 可选:安装MySQL GUI 工具
- 如果还没有,请安装MVC 2 RTM,或者更好的是,使用 Microsoft 的Web Platform Installer。(更新: MVC 2 现在已经发布了很长一段时间)
- 创建一个空的 MySQL 数据库。如果您不想使用 MySQL root 用户帐户(不安全)访问您的应用程序,请创建一个用户帐户并分配适当的权限(超出本文的范围)。
- 在 Visual Studio 中创建新的 MVC 2 应用程序
- 在 MVC 2 应用程序中,引用 MySql.Web.dll。它要么在您的 GAC 中,要么在 MySQL 连接器安装程序放置的文件夹中。
修改 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.
修改 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 Web 配置工具(在 Visual Studio 顶部菜单中:项目 -> ASP.NET 配置)。工具启动后,检查每个选项卡;没有错误=一切都好。
Nathan Bridgewater 博客中的配置工具对于使其正常工作至关重要。荣誉,内森。在页面下方查找“配置工具”标题。
我在这里发布的 MySql.web.dll 上的公钥令牌不应该很快改变。但是,如果您怀疑复制和粘贴错误的令牌字符串或其他原因,只需使用 Visual Studio 命令行运行:“sn -T [Path\to\your.dll]”以获得正确的公钥令牌。
有了它,在 MySQL 上运行的 ASP.NET MVC 2。干杯!
我相信“10。修改 web.config:: 的配置文件部分”
<profile>
<providers>
<clear /> ...
<add type="MySql.Web.Security.MySQLProfileProvider,......
type= 必须是: type="MySql.Web.Profile.MySQLProfileProvider"
因为在“MySql.Web.Security”中我没有找到任何方法 MySQLProfileProvider。(但对于 .NET 4.0 使用版本 6.4.4。)
至少,如果没有准备好配置的数据库,您必须创建自己的类来创建数据库表。哈拉尔