Как я могу изменить абсолютный путь моей строки подключения на относительный путь?

1

<add name="movies_db.mdf" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\user\Documents\Visual Studio 2013\WebSites\Movies\App_Data\movies_db.mdf;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

Привет, я добавил эту строку соединения на моей странице Web.config для подключения к моей базе данных "movies_db.mdf". Я скопировал весь путь из раздела свойств, указав мышь на имя базы данных в "Server Explorer". Теперь это сработало на моем компьютере, и, как я понимаю, путь строки соединения называется абсолютным путем. Как я могу изменить его на относительный путь, чтобы он мог работать и подключаться на другом компьютере?

Я использую Visual Studio 2013 и пытаюсь создать сайт с подключением к БД.

Теги:
database
visual-studio-2013
connection-string

2 ответа

1
Лучший ответ

Задайте настройку строки подключения следующим образом:

<connectionStrings>
     <add name="movies_db.mdf" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename={%FileName%};Integrated Security=True"
     providerName="System.Data.SqlClient"/>
</connectionStrings>

Затем в вашем коде используйте строку подключения следующим образом:

ConfigurationManager.ConnectionStrings["movies_db.mdf"].ConnectionString.Replace("{%FileName%}",
Server.MapPath("~/App_Data/movies_db.mdf"));
  • 0
    Здравствуйте, я внес изменения, которые вы предложили выше, и попробовал его на другом компьютере, но теперь появилась другая проблема: «Попытка присоединить базу данных с автоматическим именем для файла C: \ Users \ .net \ Desktop \ Movies_Project_300521788 \ App_Data \ movies_db Ошибка .mdf. База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC. " Как я могу решить эту проблему ? Спасибо за ответ
  • 0
    Это больше похоже на проблему с правами доступа к файлам. Учетная запись, на которой работает ваш сервер IIS (обычно это идентификатор пользователя учетной записи пула приложений), не имеет доступа к вашему рабочему столу. Я был бы благодарен, что это не потому, что хорошо ... если бы веб-приложению было разрешено читать / изменять содержимое рабочего стола, у нас была бы огромная проблема безопасности. Попробуйте поместить его в то место, к которому, как вы знаете, имеет доступ пользователь пула приложений IIS. Например, для меня это: C: \ inetpub \ wwwroot \ MyWebSite. По сути, поместите его в папку App_Data вашего веб-приложения. Итак, C: \ inetpub \ wwwroot \ MyWebsite \ App_Data.
Показать ещё 2 комментария
-1

попробуй это. Он работает для баз данных SQL Server, но не знает, работает ли для localdb

   <add name="con-string1" connectionString="Data Source=(LocalDB)\v11.0; Initial Catalog=movies_db;Integrated Security=True" providerName="System.Data.SqlClient"/>
  • 1
    Это не будет работать для БД, хранящейся в файловой системе. Его вопрос касается БД в файловой системе; ни один не хранится в SQL Server.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню