Почему я должен отсоединять свою базу данных от VS, чтобы запустить приложение без ошибок аутентификации? - PullRequest
1 голос
/ 12 марта 2012

Я создал проект веб-приложения в Visual Studio 2010, используя Entity Framework Code First. Я указал, где я хочу, чтобы мой файл базы данных находился, используя строку подключения. Тем не менее, когда я добавляю базу данных в свой проект (после того, как она была автоматически создана), я не могу запустить приложение без ошибок в диапазоне от - БД недоступен, ошибки аутентификации, не может удалить БД, поскольку она используется и т. Д ....

Только когда я «отсоединяю» базу данных в обозревателе решений и запускаю приложение, она работает правильно. Разве экземпляр сервера SQL и Visual Studio не должны иметь доступ к БД одновременно или для этого требуются отдельные экземпляры? Мне нравится иметь возможность просматривать данные моей таблицы через VS. Это норма или я что-то не так делаю?

Я искал несколько часов и не могу найти решение. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 13 марта 2012

Похоже, вы используете экземпляр базы данных SQL Express по умолчанию, что означает, что только одно приложение может одновременно обращаться к базе данных.

SQL Express немного отличается от своего старшего брата SQL Server. SQL Server - это сервер, который получает соединения от приложений, где SQL Express - это среда выполнения, которая является частью вашего приложения. Если бы вы использовали SQL Server, ваше приложение и обозреватель Visual Studio Server могли бы иметь открытые соединения с сервером, которые затем выполняли бы запросы по доверенности к базе данных. С помощью SQL Express обозреватель Visual Studio Server и ваше приложение ASP.NET пытаются открыть базу данных и выполнить запросы самостоятельно. Отсюда и блокировки и ошибки.

Это именно то, что произошло бы, если бы вы и кто-то другой одновременно пытались открыть Word Doc для редактирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...