Server.MapPath в ASP.Net - PullRequest
       45

Server.MapPath в ASP.Net

0 голосов
/ 13 декабря 2011

Я разработал веб-приложение, используя ASP.Net с Microsoft Access в качестве базы данных. Теперь я подключился к базе данных, используя соединение OleDB. Проблема в том, что я указываю источник базы данных в строке подключения Source="C:/WebApp/DB/data.mdb". Соединение выдает ошибку о том, что путь неверен, и такого файла нет.

Я пытался использовать

Server.MapPath("~/DB/data.mdb") 

, который дает путь как "C: /WebApp/DB/data.mdb", но выдает ту же ошибку

Colud not locate file 'C:/WebApp/DB/data.mdb'

В чем проблема, даже если она хорошо работает в loalhost, когда я публикую ее на сервере с помощью Plesk, она показывает ту же ошибку, в которой говорится, что «C: /inetpub/xyx.com/httpdocs / ...» не нашел

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Попробуйте использовать путь wndows (обратный слеш, а не прямой слэш).

Если вы отправляете базу данных доступа с веб-приложением, вы также можете исследовать ее, поместив в папку App_Data. Прочитайте здесь для получения дополнительной информации.

Полностью обработанный пример: здесь

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

Также обратите внимание, что, когда вы сохраняете элемент в App_Data, полезно использовать строку подключения:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\data.mdb;Persist Security Info=False;" 

(плюс любые данные пользователя / пароль). ASP.Net разрешит | DataDirectory | путь во время выполнения.

1 голос
/ 13 декабря 2011

вы пробовали с путем Windows?(обратите внимание на обратную косую черту)

C:\WebApp\DB\data.mdb
0 голосов
/ 13 декабря 2011

Возможно, есть несколько проблем, проверьте следующие пункты:

  • Убедитесь, что папка DB существует на корневом уровне вашего приложения
  • Убедитесь, что файл базы данныхdata.mdb существует существует под DB папкой

Примите соответствующие меры, если какой-либо параметр отсутствует, как указано выше.

...