使用Mysql数据库发布ASP.NET MVC 4 Web应用程序

时间:2014-03-02 20:21:43

标签: mysql asp.net-mvc-4 connection-string web-deployment

我已经成功创建了一个ASP.NET MVC 4 Web应用程序,现在我想在测试环境中部署它。目标服务器不是Azure服务器,但它是安装了IIS的Windows Server 2008 R2服务器。 现在我已经使用Visual Studio 2013 Professional发布了我的解决方案,一切正常,除了数据库。这是一个 Mysql 数据库,与 Entity Framework 5 完美配合(我添加了Mysql提供程序, mysql.data.entity.dll mysql.data.dll 以及使其在本地运行的所有配置。一旦我发布项目,它就部署在IIS上,但它不会从我的Mysql数据库中检索数据。我还要注意,在发布向导中,虽然我指定了连接字符串,但它表示

  

没有检测到数据库

它应该显示我的上下文的名称而不是它。你能帮我解释为什么发布向导不能识别我的Mysql数据库吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我首先使用Asp.net MVC MySql使用实体框架代码,就像这里解释的那样http://www.asp.net/identity/overview/getting-started/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider ...这里有几件我注意到的事情:

  • 生成的迁移包含无法在dbo.上运行的架构 MySql ,因此我转到了迁移文件并删除了所有架构引用。 (有更好的解决方案,比如配置/设置明智)
  • 唯一密钥长度问题,例如UserName(在asp.net标识中定义)的最大长度为256,并且超出了mysql唯一字段的限制,因此我将长度更改为128.这解决了此错误
  

指定的密钥太长;最大密钥长度为767字节

  • 我确实遇到了使用发布向导的麻烦,因为没有向我显示我的任何MySql驱动程序来测试我与数据库的连接,所以我只需更改配置文件中的连接字符串并将我的迁移更改应用到来自程序包管理器控制台> Update-Database的新/测试数据库(在您找到自动化解决方案之前,这可能是您的临时解决方案)