2011-02-01 2 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

Я удалил файл aspnetdb.mdf с помощью SQL Server Management Studio, и я все еще получаю эту ошибку. Что может быть неправильным?

+0

Удаление файла обычно выполняется для проблемы с автоматическим прикреплением. Вы уверены, что вы удалили/DROPped DB-файл, а не отсоединили его от SQL? –

+0

nope, did't work – LuckyStar

+0

i удален из студия управления сервером sql (удалено); он исчез из узла «Базы данных»; Я также выполнил запрос aspnetdb DROP DATABASE (после удаления), и я получил сообщение: – LuckyStar

ответ

1

Я столкнулся с той же проблемой (но с SQL Server вместо aspnetdb.mdf), и это решение, которое сработало для меня. Я знаю, что вопрос старый, но я публикую это для будущих ссылок.

Помните, что при использовании этого решения ваша база данных будет удалена до развертывания новой базы данных. Таким образом, это небезопасная операция и подходит только для разработки.

Прежде всего, я думаю, что возможность сброса базы данных должна быть доступна с помощью флажка в настройках проекта, но вместо этого мы вынуждены вручную редактировать файл проекта. Запись на статью How to: Deploy a Database With a Web Application Project. В разделе «Повторное использование с помощью автоматически сгенерированных скриптов» мы можем прочитать, что установка ScriptDropsFirst=True в PreSource 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" />

Используя эти настройки, я могу повторно опубликовать свои базы данных по своему желанию.


Side Примечание: Это решение вряд ли будет работать в производственной среде, где вы не можете оставить свои базы данных, как только вам необходимо обновить решения. Вместо этого я бы предпочел использовать пользовательские сценарии, чтобы помочь обновлению, как описано в разделе «Развертывание изменений базы данных с помощью пользовательских сценариев» в той же статье.

Смежные вопросы