当我在Azure在线帐户上发布它并且数据库运行良好时,它可以正常工作。 但问题是,当我按照教程时,它要求这样做: 1.启用迁移 2.添加迁移 3. update-database
在数据库'master'中拒绝CREATE DATABASE权限。
所以我无法在本地部署我的WebSite,这是我的问题...... 当我运行Ctrl + F5时,它会打开
> http://localhost:2700/
并显示此错误:
> Server Error in '/' Application.
>
> CREATE DATABASE permission denied in database 'master'.
>
> Description: An unhandled exception occurred during the execution of
> the current web request. Check the stack trace for more information
> about the error and where it originated in the code.
>
> Exception Details: System.Data.SqlClient.SqlException: CREATE DATABASE
> Permission denied in database 'master'.
>
> Source Error:
>
>
> Line 20: public ActionResult Index ()
> Line 21: {
> Line 22: return View(db.ToDoItems.ToList ());
> Line 23: }
>
> Source File: c: \ Users \ baudouin \ Documents \ Visual Studio 2012 \
> Projects \ ToDoListApp \ ToDoListApp \ Controllers \ HomeController.cs
> Line: 22
当我打开SQL Server Management Studio时,我可以访问我的主数据库... 当我在Visual Studio 2012 RC中时,它说我的数据连接DefaultConnection(ToDoApp)有错误:
> Server Explorer can not execute this operation.
> For more information, see details below:
> Cannot attach the file 'C:\Users\baudouin\documents\visual studio 2012\Projects\ToDoListApp\ToDoListApp\App_Data\aspnet-ToDoListApp-20120625114938.mdf'
> as database 'aspnet-ToDoListApp-20120625114938'.
我在教程中没有看到与.mdf相对应的内容......我不明白为什么update-database根本不起作用。
你能帮帮我吗?
谢谢!! [来自巴黎的法国学生]
答案 0 :(得分:0)
你的连接字符串是什么?在测试代码时,您似乎正在尝试连接到本地SQLExpress数据库?
当您从Visual Studio运行代码时,VS和数据库都可以在两个不同的帐户上运行。例如,Windows Azure Compute Emulator使用“网络服务”帐户凭据运行,因此为master数据库添加相同的“网络服务”凭据可解决此问题。
因此,尝试在NT AUTHORITY \ NETWORK SERVICE的SQLExpress实例中添加登录名并授予其sysadmin角色,并查看问题是否已解决。
尽管仅为主数据库授予系统管理员角色授予db_owner角色给NT AUTHORITY \ NETWORK SERVICE。这也需要重新启动服务一次 - 建议重新启动系统。
答案 1 :(得分:-1)
正如Avkash所指出的,问题与您尝试连接到本地数据库有关。这可能在本地工作,但在Windows Azure中不起作用。请使用Azure SQL数据库。连接字符串的数据源需要指向tcp:...而不是本地mdf文件。实际上你指出的教程已经使用了Azure SQL数据库,请参阅它以获取更多详细信息。