我目前正在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上运行。有没有人对如何解决这个问题有任何想法?
答案 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文件夹,问题就解决了。