Получить путь к БД вне папки веб-приложения на сервере с помощью Asp.Net

#asp.net #ms-access #connection-string

#asp.net #ms-access #строка подключения

Вопрос:

Я опубликовал веб-приложение на сервере, и я хотел бы получить доступ к файлу базы данных (.mdb), который также хранится на сервере в другом месте за пределами моего. Как я могу это сделать в файле web.config моего Asp.Net приложение?

 <add name="MyOleDbConnection" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= **{?}** inventory.mdb"/>
  

Комментарии:

1. Можете ли вы определить «вне моего»? Вы имеете в виду, что он находится за пределами корня веб-приложения?

Ответ №1:

Я не верю, что вы можете сделать это из кода, используя что-то вроде Server.MapPath() — и не зря. Это позволило бы разработчикам писать приложения, которые берут на себя управление операционными системами хоста на облачных серверах. Вам запрещено определять путь к файлам / папкам вне контроля IIS, чтобы предотвратить атаки обхода каталогов.

Вам нужно будет спросить системного администратора или кого-то, у кого есть доступ, какой путь находится на этом компьютере. Как только у вас будет полный путь, вы можете задать полный путь в .config

 c:pathinventory.mdb
  

вместо

 inventory.mdb
  

Вам также необходимо убедиться, что системный администратор предоставляет вам разрешения на доступ к .mdb.

Комментарии:

1. В настоящее время мой проект находится в виртуальном каталоге, а файл .mdb находится в каталоге за пределами моего виртуального каталога.

2. Спасибо, это сработало. Я позвонил системному администратору, и они дали мне полный путь к виртуальной папке.