2012-01-05 103 views
6

我目前在Visual Studio 2010中構建一個Web應用程序項目,直到最近,還沒有必要使用成員,用戶和角色等的腳手架代碼存儲在ASPNETDB.mdf數據庫文件中。我一直在Visual Studio Web服務器上運行該項目,IIS Express(從Visual Studio)以及IIS7.5都沒有問題。嘗試爲.mdf文件附加一個自動命名的數據庫失敗

不過,我現在需要把用戶帳戶,當我使用的腳手架代碼登錄,我得到了一個服務器錯誤,指出:

試圖附加的文件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上運行。有沒有人對如何解決這個問題有任何想法?

回答

3

這可能是您無法訪問該文件的情況下運行IIS的帳戶的問題。

將網絡服務帳戶的完整權限分配給該文件夾。

您可以暫時嘗試'所有人',看看它是否解決問題,並從那裏向後工作。

還要確保其不被其它Web服務器使用(進程資源管理器/ Sysinternals的可以幫助您顯示)

+0

Everyone和NETWORK SERVICE組完全控制着App_Data目錄,但我仍然得到同樣的結果。相當肯定它沒有被任何其他Web服務器使用。掌握了進程管理器,但不知道我在找什麼。 – Mabbage 2012-01-05 18:59:56

+0

在進程資源管理器中搜索數據庫名稱,如果正在使用它,它將顯示已打開的進程。它可以在Visual Studio中打開,VS web服務器仍然可以保留,等等。 – 2012-01-05 19:46:35

+0

我已經對整個Documents文件夾中的NETWORK SERVICE給出'完全控制',並且似乎解決了上述問題。我現在又出現了另一個關於'NT AUTHORITY \ NETWORK SERVER登錄失敗'的錯誤,但應該提出另一個問題,因爲它似乎是一個單獨的問題。 – Mabbage 2012-01-05 19:54:39

1

檢查你的文件夾不是隻讀的。對我的作品

0

它出現的OP已經解決了這個問題,但我以爲它在我的解決方案值得標籤,因爲它可以幫助其他人在未來.....

我也有類似的問題,其中的LocalDB去在現場服務器上顯示爲「只讀」模式,但在本地開發筆記本電腦上工作良好。

在閱讀了許多這樣的帖子,並試圖找到所有我能找到的東西之後,它仍然無法正常工作。

偶然我在現場服務器上進入IIS,發現有3個數據庫連接被識別。 2被繼承 - 我不知道從哪裏來,第三個是在本地聲明的(例如,在網站web.config中)。

我刪除了2個繼承的連接,瞧!現在它工作正常。

0

從VS2013遷移到VS2015社區後,嘗試從Visual Studio 2013文件夾中打開項目的數據庫.mdf文件時遇到此問題。然後我將數據庫文件項目複製到新創建的Visual Studio 2015文件夾,問題就解決了。

相關問題