Вопрос

Как я могу получить два отдельных сайта ASP.NET, в данном случае веб -сайт, использующий структуру Entity и веб -сервис, для использования одной и той же локальной базы данных MDF & LDF?

Я оглянулся и думаю, что этот вид локального БД называется экземпляром пользователя - по крайней мере, они в настоящее время использую его. Я не был уверен, сработает ли это или нет, пока я не нашел приведенную ниже информацию из Библиотека MSDN И теперь я действительно не уверен, сработает ли это.

Сценарии экземпляра пользователя включают:

...

Выделенный хостинг ASP.NET с использованием аутентификации Windows. Один экземпляр SQL Server Express может быть размещен на интрасети. Приложение подключается с помощью учетной записи Aspnet Windows, а не с помощью подражания. Примеры пользователей не должны использоваться для сторонних или общих сценариев хостинга, где все приложения будут использовать один и тот же экземпляр пользователя и больше не останутся изолированными друг от друга.

Будет ли это работать сразу без дополнительной конфигурации? Когда я пытаюсь добавить DB в каждое последовательное приложение, я получаю ошибку использования файла, если что -нибудь еще использует DB, что заставляет меня верить, что я не могу сделать это таким образом. Однако, если я остановит использование DB, добавлю его, а затем запустите его, он кажется работать нормально. У кого -нибудь есть какое -либо подтверждение, что это не будет повреждено или не испытывает никаких ошибок, используя его таким образом?

Предпочтительно, MDF & LDF будет храниться в каталоге APP_DATA на веб -сайте (| DataDirectory |). Если я сделаю это таким образом, я не думаю, что смогу надежно использовать относительную адресацию для Сервиса, если я не помесчу ее в подка каталог для сайта, это правильно?

редактировать: Я использую SQL Server Express, потому что это задание для школы, поэтому мне придется его использовать. Если есть путь без экземпляра пользователя, я постараюсь обойтись без него.

Это было полезно?

Решение

Вы не можете использовать User Instance для этого. Это позволяет только одному клиенту за раз подключаться к вашей базе данных. Когда ваши два приложения используют одни и те же учетные данные, вы получаете ошибку, которую описываете. Когда ваши два приложения используют разные учетные данные, вы, по сути, получаете два отдельных экземпляра (также не то, что вы хотите).

Кроме того, экземпляры пользователей поддерживаются только на SQL Server Express. Я не знаю, как выглядит ваша производственная среда, но, вероятно, она не работает на SQL Server Express?

Вы должны использовать AttachDBFilename В строке подключения вашего веб -приложения указывать на локальную базу данных: AttachDBFilename=|DataDirectory|\MyDB.mdf.

В своем веб -службе вы также используете AttachDBFilename Но это зависит от места развертывания веб -службы, на что можно указать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top