Приложение ASP.NET использует неправильный путь к файлу при публикации на компьютере с Windows Server 2008 - PullRequest
0 голосов
/ 08 июня 2011

У меня есть приложение asp.net, которое я изменяю. Я настраиваю Visual Studio 2010 для публикации на сервере разработки под управлением Windows Server 2008 RC 2 (не думаю, что это имеет значение). Я добавил новую веб-форму в приложение через визуальную студию с функцией «Добавить новый элемент», и она работает на моем локальном компьютере. Когда я публикуюсь на сервере, он начинает выдавать криптографические исключения, потому что пытается получить доступ к файлу .p12 для отправки push-уведомлений Apple на устройство iphone. Сначала я подумал, что с сертификатом что-то не так, поэтому я добавил в код операторы печати и заметил, что он пытается получить доступ к новой странице по пути к файлу на моем локальном компьютере вместо пути к файлу на сервере. У кого-нибудь есть идеи, почему он это делает? Есть ли способ сделать путь к файлу относительно проекта?

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Вы должны использовать MapPath ("{lativePath / FileName}").Это вернет физический путь.

filename = MapPath("/images/logo.jpg")

Будет что-то вроде "C: \ inetpub \ webroot \ images \ logo.jpg"

1 голос
/ 08 июня 2011

Сервер не имеет значения. Файл был добавлен с абсолютным путем. Не знаю, почему и у вас нет времени на исследования.

Как сайт настроен на вашем отладочном компьютере? Используете ли вы IIS или сервер разработки ASP.NET? Не уверен, что это имеет большое значение, но переключение на IIS и лучшую имитацию производства часто решает эти мелкие ошибки. Для переключения добавьте папку в IIS, затем удалите проект и повторно включите путь HTTP вместо папки проекта.

Если локальный IIS не доступен или вы уже это сделали, я бы выполнил поиск соответствующего пути и изменил его там. Если вы не найдете результатов, это может быть как-то встроено в файл решения.

...