Относительные пути ASP.net не работают? - PullRequest
1 голос
/ 16 июля 2010

Это должно быть довольно просто, но это не работает.

У меня есть файл в корне моего проекта. Я хочу назвать это так.

GetWorkbook("tplBud806_wRevenue.xls")

Я публикую проект на сервере и пытаюсь запустить его, а сервер говорит, что не может его найти.

Could not find file 'c:\windows\system32\inetsrv\tplBud806_wRevenue.xls'.

Это не тот путь, по которому следует идти. Это должно быть в E: \ IIServer \ rootwww \ reports \ tplBud806_wRevenue.xls.

Я думал, что относительные пути должны начинаться с пути, по которому был запущен проект. Я также пытался.

GetWorkbook("/tplBud806_wRevenue.xls")
GetWorkbook("\tplBud806_wRevenue.xls")
GetWorkbook("~/tplBud806_wRevenue.xls")
GetWorkbook("~\tplBud806_wRevenue.xls")

Есть какие-то настройки, которые я пропускаю? Это должно быть что-то простое ...

Ответы [ 5 ]

7 голосов
/ 16 июля 2010
GetWorkBook(Server.MapPath("tplBud806_wRevenue.xls"));
3 голосов
/ 16 июля 2010

GetWorkbook не является функцией ASP.NET, и, скорее всего, по умолчанию это папка, из которой был вызван процесс, вызывающий ее.Процесс в этом случае является процессом IIS и, вероятно, запущен в этой папке.

1 голос
/ 16 июля 2010

GetWorkBook(Server.MapPath("~/tplBud806_wRevenue.xls")); Если файл .XLS находится в корне вашего проекта.

Вы также можете использовать ~ в сочетании с ResolveURL () для доступа к URL-адресу на вашем сайте.Таким образом, ~ будет заменен корневым URL вашего проекта

Пример:

ResolveURL("~\tplBud806_wRevenue.xls")

будет преобразован в http://myproject.url/website/tplBud806_wRevenue.xls

Если вам нужен доступ к диску, как в вашем примере, используйте Server.MapPath

Посмотрите эту ТАК сообщение , чтобы узнать больше о Server.MapPath

1 голос
/ 16 июля 2010

Ваше приложение работает в домене приложений, загруженном w3wp.exe, который находится в каталоге вашей ошибкиЭто означает, что попытка поиска любого файла начнется в этом каталоге.Вы должны использовать Page.MapPath , как упоминалось другими.Он говорит приложению начать поиск в папке, в которой находится aspx.

1 голос
/ 16 июля 2010

Server.MapPath

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...