尝试为.mdf文件附加自动命名的数据库失败

时间:2012-01-05 18:21:56

标签: asp.net sql database asp.net-mvc-3

我目前正在Visual Studio 2010中构建Web应用程序项目,直到最近,还不需要使用存储在ASPNETDB.mdf数据库文件中的成员资格,用户和角色等的脚手架代码。我一直在Visual Studio Web服务器,IIS Express(来自Visual Studio)以及IIS7.5上运行该项目而没有任何问题。

但是,我现在需要合并用户帐户,当我使用脚手架代码登录时,我收到服务器错误说明:

  

尝试为文件C附加自动命名的数据库:\ Users \ User \ Documents \ COMP6059 \ PomumV2 \ PomumV2 \ App_Data \ aspnetdb.mdf   失败。存在具有相同名称的数据库,或   无法打开指定的文件,或者它位于UNC共享上。

只有在使用IIS Express或IIS7.5 Web服务器时才会出现此错误。 Visual Studio Web服务器工作正常。

我已按照http://support.microsoft.com/?kbid=2002980的说明无效。

以下是我的数据库连接字符串:

<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

错误发生在AccountController.cs文件的以下行(自动生成)

...  if (Membership.ValidateUser(model.UserName, model.Password)) { ...

我确实读过某些地方,我可能需要将数据库移动到SQL Server Management Studio,然后通过它连接visual studio,但我无法登录数据库。

我希望这能够在IIS7.5上运行。有没有人对如何解决这个问题有任何想法?

4 个答案:

答案 0 :(得分:3)

如果您无法访问该文件,则运行IIS的帐户可能存在此问题。

为网络服务帐户的该文件夹分配完整权限。

您可以暂时尝试'每个人'并查看它是否可以解决问题,并从那里开始向后工作。

同时确保其他Web服务器不使用它(进程资源管理器/ sysinternals可以帮助向您显示)

答案 1 :(得分:1)

检查您的文件夹是否为只读文件夹。适合我

答案 2 :(得分:0)

看来OP已经解决了这个问题,但我觉得值得在我的解决方案上加以标记,因为它可能在将来帮助其他人......

我有一个类似的问题,localDB在实时服务器上进入明显的“只读”模式,但在我的本地开发笔记本电脑上工作正常。

在阅读了这样的大量帖子后,尝试了我能找到的所有内容,它仍然无效。

我偶然在实时服务器上进入IIS,发现已识别出3个数据库连接。 2是继承的 - 我不知道从哪里来的,第三个是本地声明的(例如在网站web.config中)。

我删除了2个继承的连接,瞧!现在它工作正常。

答案 3 :(得分:0)

从VS2013迁移到VS2015社区后出现此问题,同时尝试从Visual Studio 2013文件夹中打开项目的数据库.mdf文件。然后我将带有数据库文件的项目复制到新创建的Visual Studio 2015文件夹,问题就解决了。