Server.MapPath()

Я хочу использовать метод Server.MapPath() im для сопоставления виртуального каталога, который я создал, с его физическим путем.

Дело в том, что среда.net не распознает Server.MapPath().

Google сказал мне, что я должен использовать HttpContext.Current.Server с использованием System.Web, но HttpContext не распознается, несмотря на то, что я использую System.Web. (И я проверил - HttpContext - это один из классов System.Web)

Помогите?

3 ответа

Убедитесь, что вы включили System.Web в свои проекты. Ссылки Выполните следующие действия (в Visual Studio IDE):

  1. Щелкните правой кнопкой мыши узел проекта (окно обозревателя решений)
  2. В контекстном меню нажмите Добавить ссылку
  3. Выберите System.Web в элементах списка вкладки.NET.
  4. Нажмите кнопку ОК

Server.MapPath теперь должен быть доступен.

Если у вас есть веб-приложение, вы должны автоматически иметь ссылку на System.Web.dllи у вас должен быть доступ к System.Web.HttpContext учебный класс. Убедитесь, что вы случайно не удалили ссылку. Вам понадобится using System.Web; Заявление о доступе к HttpContext класс без указания полного пространства имен.

Если у вас нет веб-приложения, вам нужно добавить ссылку на System.Web.dll чтобы получить доступ к HttpContext класс, но это не поможет вам немного. Поскольку вы не находитесь в веб-приложении, отсутствует контекст HTTP и отсутствует корневая папка веб-сайта, поэтому вы не можете использовать метод MapPath.

Та же проблема здесь. В веб-приложении ASP.net 4.0, в обработчике.ashx, с using System.Web на вершине. Я не мог использовать Server.MapPath() это то, что книга, которую я сказал, чтобы использовать или System.Web.HttpServerUtility.MapPath() это то, что Google и MSDN продолжают появляться. Я также не мог использовать HttpServerUtility.MapPath() как уже упоминалось выше.

Тем не менее, один из других ответов здесь побудил меня попробовать context.Server.MapPath() который работает в моем ProcessRequest(HttpContext context) метод.

Другие вопросы по тегам