Вопрос

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

ОС: Windows XP Pro

IIS: 5.1

Платформа развития: Visual Studio 2008

Язык: C #

Имя виртуального каталога: портал

Локальный путь: C: Digital_communications_report_portal

Локальный путь веб-сайта по умолчанию: C: inetpub wwwroot

Я могу скачать файл в http: //localhost/portal/testfile.xlsx. без каких-либо проблем.

Я пытаюсь любой из этих

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

И получить «C: Documents и Settings Jjohnson My Documents Visual Studio 2008 Websies ClientSite localhost Portal testfile.xlsx», который является моим путь проекта с виртуальным путем, удаленным в конце и не является действительным путем Отказ Я пытаюсь взять тильду или localhost, и я получаю «Не удалось сопоставить путь '/portal/testfile.xlsx». исключение.

Есть идеи, что я делаю не так?

Это было полезно?

Решение

Если я не ошибаюсь, Server.MapPath(ResolveUrl("~/relative/path/to/file")) не то, что вы хотите. Это будет производить /rooted/path/to/file который когда передается Server.MapPath() не даст действительное местоположение.

Вместо этого просто использовать Server.MapPath("~/relative/path/to/file");

Обновлять

Проблема, которую вы испытываете, связаны с тем, что вы включаете имя виртуального каталога («Portal») в вашем относительном URL. Ваш относительный URL не должен указывать имя виртуального каталога, просто путь к нужным файлам относительно корня приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top