2015-03-30 8 views
0

В разработке, то есть при использовании Visual Studio и его встроенного экземпляра IIS Express, я настроил свое веб-приложение для использования LocalDB с файлом MDF данных, находящимся в каталоге на моем компьютере, но не внутри каталога проекта, например, «C: \ MyAppData \ MyAppData.mdf», а не «C: [...] \ MyAppProject \ App_Data \ MyAppData.mdf».Могу ли я подключиться к файлу LocalDB MDF на компьютере из веб-приложения, которое выполняется на веб-сервере?

Это работает просто отлично при использовании Visual Studio/IIS Express, и строка подключения используется выглядит примерно так:

<add name="MyAppEntities" connectionString="metadata=res://*/MyAppModel.MyAppModel.csdl|res://*/MyAppModel.MyAppModel.ssdl|res://*/MyAppModel.MyAppModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(localdb)\v11.0;attachdbfilename=C:\MyAppData\MyAppData.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

Мой вопрос, после того, как развернуть приложение на веб-сервере разработки, возможно ли, что приложение может подключиться к тому же файлу MDF, размещенному на моем компьютере? Если да, то как? Если нет, почему бы и нет? Обратите внимание, что я не публикую файл MDF на веб-сервере разработки: я пытаюсь получить доступ к файлу MDF на своем компьютере из приложения, работающего на веб-сервере.

Мое предположение заключалось в том, что веб-приложение будет использовать строку подключения для поиска этого файла MDF на том, на каком компьютере работает приложение, но, видимо, это не так просто и может быть даже невозможным?

+4

Это НЕ возможно. Вы не можете получить доступ к файлу на клиентской машине из веб-приложения. Есть слишком много причин, почему вы не можете этого сделать. Как вы узнаете путь к клиентской машине, Что касается безопасности, это просто не веб-приложения. –

+3

Нет, файл '.mdf' - это действительно база данных ** SQL Server **, и если вы действительно хотите, чтобы несколько пользователей из веб-приложений использовали эту базу данных, вам необходимо установить ** сервер базы данных SQL Server ** на где-то в вашей сети, и пусть все подключаются к этому общему серверу. –

+0

:-) Если вы просто делаете это для тестирования, попробуйте поделиться папкой, из которой находится файл MDF на вашем локальном компьютере, тогда вы можете изменить свое соединение строка, указывающая на общую папку. :-) технически он должен работать, но не рекомендуется для использования prod. –

ответ

1

Это не сработает. Вам нужно настроить экземпляр SQL Server Express на локальном ПК, а внутри создать базу данных, похожую на ваш MDF (или просто экспортировать его прямо). Вы можете подключиться к этому экземпляру SQL Express, изменив connectionString на (пример) «SERVERNAME» и ссылаясь на базу данных. Отличным примером является http://www.connectionstrings.com/. SQL Server Express является бесплатным, а также более надежным, чем что-либо внутреннее в VS.

+1

Или просто прикрепите '.mdf', который у вас уже есть к экземпляру SQL Server, а затем используйте его * на сервере * - это просто! –