2011-02-01 110 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" />

使用这些设置我可以重新发布我的数据库,如我所愿。


边注:该解决方案将难以在生产环境中,你不能只要你需要更新的解决方案,放下你的数据库。相反,我会选择使用自定义脚本来帮助更新,如同一篇文章中的“使用自定义脚本部署数据库更改”一节中所述。