2011-02-01 118 views
2

我試圖用Visual Studio 2010發佈一個簡單的網站。 我使用Web Deploy。我收到以下錯誤:問題發佈網站ASP.NET 4.0

Error 1 Web deployment task failed.(Object of type 'dbFullSql' and path 'Data Source=.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf;Integrated Security=True;User Instance=True' cannot be created.)

Object of type 'dbFullSql' and path 'Data Source=.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf;Integrated Security=True;User Instance=True' cannot be created. Cannot connect to the database 'c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf'. An attempt to attach an auto-named database for file c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 0 0 WebApplication3

我刪除使用SQL Server Management Studioaspnetdb.mdf文件,我仍然得到這個錯誤。什麼可能是錯的?

+0

刪除文件通常適用於自動附加問題。你確定你已經刪除/刪除了DB文件,而不是將它從SQL中分離出來嗎? – 2011-02-01 09:11:40

回答

1

我遇到了同樣的問題(但與SQL Server而不是aspnetdb.mdf),這是一個爲我工作的解決方案。我知道這個問題很古老,但是我將這張貼發佈給未來的參考。

請注意,在部署新數據庫之前,使用此解決方案時,您的數據庫將被刪除。因此是不安全的操作,並且只適合於開發。

首先我想通過項目設置中的複選框可以選擇刪除數據庫,但是我們被迫手動編輯項目文件。該條目是文章How to: Deploy a Database With a Web Application Project。在「使用自動生成腳本重新部署」一節中,我們可以讀取在自動生成的腳本中設置ScriptDropsFirst=TruePreSource element,目標數據庫將在部署新數據庫之前刪除。

所以,要做到這一點:打開.csproj文件在記事本中,找到一個名爲PreSource段(每個配置調試/發行/ ...)和ScriptDropsFirst="True"元素添加進去,這樣整個XML標籤上表格 <PreSource Path="Data Source=LOCALHOST\SQLEXPRESS%3bInitial Catalog=myDB%3bIntegrated Security=True" ScriptSchema="True" ScriptData="False" CopyAllFullTextCatalogs="False" ScriptDropsFirst="True" />

使用這些設置我可以重新發布我的數據庫,如我所願。


邊注:該解決方案將難以在生產環境中,你不能只要你需要更新的解決方案,放下你的數據庫。相反,我會選擇使用自定義腳本來幫助更新,如同一篇文章中的「使用自定義腳本部署數據庫更改」一節中所述。