Проблема с публикацией веб-сайта ASP.NET 4.0

Я пытаюсь опубликовать простой сайт с помощью Visual Studio 2010. Я использую Web Deploy. Я получаю следующую ошибку:

Ошибка 1. Не удалось выполнить задачу веб-развертывания. (Объект типа «dbFullSql» и путь «Источник данных =.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\ aspnetdb.mdf;Integrated Security=True;Экземпляр пользователя=True' не может быть создан.)

Объект типа 'dbFullSql' и путь 'Data Source=.\SQLEXPRESS;AttachDbFilename=c:\documents and settings\tavi\my document\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf;Integrated Security=True ;Экземпляр пользователя=True' не может быть создан. Не удается подключиться к базе данных «c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf». Не удалось подключить базу данных с автоматическим именем для файла c:\documents and settings\tavi\my documents\visual studio 2010\Projects\WebApplication3\WebApplication3\App_Data\aspnetdb.mdf. База данных с таким именем существует, или указанный файл не может быть открыт, или он находится в общей папке UNC. 0 0 Веб-приложение3

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


person LuckyStar    schedule 01.02.2011    source источник
comment
Удаление файла обычно помогает решить проблему автоматического прикрепления. Вы уверены, что удалили/удалили файл БД, а не отсоединили его от SQL?   -  person Program.X    schedule 01.02.2011
comment
я удалил из студии управления сервером sql (удалил); он исчез из узла Базы данных; я также выполнил запрос aspnetdb DROP DATABASE (после удаления) и получил сообщение:   -  person LuckyStar    schedule 01.02.2011
comment
Невозможно удалить базу данных aspnetdb, так как она не существует или у вас нет разрешения.   -  person LuckyStar    schedule 01.02.2011
comment
Итак, он удален, хорошо; но я все еще получаю сообщение об ошибке при попытке опубликовать сайт   -  person LuckyStar    schedule 01.02.2011


Ответы (1)


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

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

Прежде всего, я думаю, что возможность удаления базы данных должна быть доступна через флажок в настройках проекта, но вместо этого мы вынуждены редактировать файл проекта вручную. Записью является статья Как: развернуть базу данных с помощью проекта веб-приложения. В разделе «Повторное развертывание с помощью автоматически сгенерированных сценариев» мы можем прочитать, что при настройке ScriptDropsFirst=True в PreSource element автоматически сгенерированного сценария целевая база данных будет удалена до развертывания новой базы данных.

Итак, для этого: Откройте файл .csproj в блокноте, найдите раздел под названием PreSource (по одному для каждой конфигурации debug/release/...) и добавьте в него элемент ScriptDropsFirst="True", чтобы весь тег xml был в виде <PreSource Path="Data Source=LOCALHOST\SQLEXPRESS%3bInitial Catalog=myDB%3bIntegrated Security=True" ScriptSchema="True" ScriptData="False" CopyAllFullTextCatalogs="False" ScriptDropsFirst="True" />

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


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

person Avada Kedavra    schedule 27.06.2011