Прикрепленная БД SQL Express вызывает проблемы - PullRequest
0 голосов
/ 25 октября 2011

Меня попросили создать веб-приложение MVC в VS 2010, и мне было поручено использовать базу данных SQL Express для моих данных.Я использую EF Code-First для создания и управления своими данными.База данных была создана в VS2010 и прикреплена через «AttachDBFilename» в файле web.config.

Ранее я использовал SQL CE с MVC без проблем, однако подключенная БД SQL Express вызывает странные проблемы.

Во-первых, когда я пытаюсь развернуть приложение, оно терпит неудачу и говорит мне, что не может скопировать database.mdf, потому что оно используется другим процессом.Я не открыл базу данных в VS2010, ни SSMS.Конечно, программный код обращается к нему - есть ли какая-то причина, по которой соединение останется открытым?Я использую стандартный код из лесов.

Я должен упомянуть, что я использую ProjectInitializer.cs для создания примера данных.В данный момент он запускается при каждом запуске, так как я тестирую совсем немного.

Другая проблема, с которой я столкнулся, заключается в том, что, если я удаляю базу данных, она не может воссоздать ее.Это говорит о том, что моя учетная запись Windows не имеет доступа к (в настоящее время не существует) базе данных, которую она пытается создать.Мне буквально нужно создать новую базу данных с новым именем , так как все, что было создано ранее (с этим именем БД), терпит неудачу.

Я предполагаю, что где-то осталась какая-то остаточная информацияэто не синхронно, но я не знаю, что это.Я закрыл все подключения к файлу в VS 2010, удалил все файлы, найденные через VS2010, и любые физические файлы, которые я вижу в каталоге app_data.

Буду признателен за любую помощь или предложения.

1 Ответ

1 голос
/ 25 октября 2011

Завершите работу веб-сервера (Cassini, IIS, IIS Express) и повторите попытку. Файл может оставаться заблокированным, если веб-процесс все еще ссылается на файл. Кроме того, загруженный контекст EF сохранит имя БД. Убедитесь, что браузер Visual Studio еще не запущен в трее.

...