我在本地环境中创build了一个ASP.NET MVC / WebAPI 2 Web应用程序。 我使用LocalDb作为我的开发目的,我遵循EF“Code First”方法(我写了所有的模型类并在需要时运行迁移)。 在我的本地环境中,一切正常。
我认为在Azure上发布应用程序进行testing是一个不错的主意。 我已经创build了Web应用程序+ SQL实例,我可以连接到它们。 我设法发布网站的一部分,但不幸的是,我无法发布数据库。
例如,当我访问.azurewebsites.net,页面加载 – 但只要我尝试login,我得到一个错误说:
Cannot find the object “dbo.Locations” because it does not exist or you do not have permissions
这告诉我,我的表没有成功迁移(即使我在“发布”向导中勾选了“执行代码优先迁移”)。
我一直在努力寻找2天的解决scheme,无济于事。 我见过很多人说我需要迁移到SQL Server本地,然后才能在Azure上工作 – 但是,我找不到一种方法将数据从LocalDb导出到SQL Server(即使在SSMS中我也找不到该选项)。
此外,我find了一个指南 – http://www.asp.net/mvc/overview/getting-started/database-first-development/creating-the-web-application-但是当涉及到数据库发布,它说只需右键点击数据库解决scheme并select“发布” – 我没有一个数据库项目/解决scheme – 对我来说,这只是一个mdf文件。
我对ASP.NET很新,所以我将不胜感激。 谢谢!
我终于明白了这个问题。
新的Azure门户中的连接string不提供必要的Database部分。 所以networking应用程序试图从数据库中select一个表,而不select数据库。
我添加了"Database=<my database>"连接string,现在它工作得很好! 数据库最初是空的,但我能够将数据从本地SQL Server迁移到Azure。
有趣的是,传统的Azure门户确实包含了Databasestring。 我会把这个报告给微软。