Невозможно использовать Server.MapPath

Что мне нужно сделать, чтобы Server.MapPath заработал?
У меня using System.Web;

что еще? Когда я набираю Server, для Server нет опции быстрого результата (intelli-sense).

Любая помощь?


person a1204773    schedule 19.06.2012    source источник
comment
Вам необходимо предоставить дополнительную информацию. Что это за проект? Почему вы хотите запустить Server.MapPath? Это проект веб-форм, и вы пишете код в подклассе страницы или в функции рендеринга ASPX?   -  person Dai    schedule 19.06.2012
comment
C # Winforms .. я хочу, чтобы он проверял наличие файлов на сервере   -  person a1204773    schedule 19.06.2012


Ответы (9)


вы можете попробовать использовать это

    System.Web.HttpContext.Current.Server.MapPath(path);

или используйте HostingEnvironment.MapPath

    System.Web.Hosting.HostingEnvironment.MapPath(path);
person DotNetUser    schedule 19.06.2012
comment
Они не работают .... Ошибка 1 Тип или имя пространства имен «HttpContext» не существует в пространстве имен «System.Web» (отсутствует ссылка на сборку?) ... Ошибка 2 Тип или имя пространства имен «Hosting» не существует в пространстве имен System.Web - person a1204773; 19.06.2012
comment
похоже, вы используете winforms, вы можете увидеть эту ссылку, а затем debugging.com/bug/18951 - person DotNetUser; 19.06.2012
comment
У меня тоже работает HostingEnvironment.MapPath, и я использую его вне контроллера. - person Luke; 08.10.2014
comment
Прежде всего, ваш проект должен ссылаться на System.Web.dll, и он будет работать - person ihebiheb; 12.07.2016
comment
Как прочитать файл, находящийся в этом каталоге ~ / AppData / Roaming? - person Murlidhar Fichadia; 24.04.2019
comment
В моем случае HostingEnvironment.MapPath("/MyFolder") возвращает c: \ inetpub \ wwwroot \. Необходимо добавить HostingEnvironment.MapPath("~/MyFolder"), чтобы вернуть правильный путь. - person sky91; 16.04.2020

Ваш проект должен ссылаться на сборку System.Web.dll. Сервер - это объект типа HttpServerUtility. Пример:

HttpContext.Current.Server.MapPath(path);
person Leandro Gomide    schedule 19.06.2012
comment
Не могу найти такую ​​ссылку, я нашел только эти две: System.Web.ApplicationServices, System.Web.Services .... - person a1204773; 19.06.2012

System.Web.HttpContext.Current.Server.MapPath("~/") дает значение null, если мы вызываем его из потока.

Итак, попробуйте использовать

System.Web.Hosting.HostingEnvironment.MapPath("~/")

person Ravindra Singh Chhabra    schedule 09.07.2018

Сначала добавьте ссылку на System.web, если у вас ее нет. Сделайте это в папке Ссылки.

Затем вы можете использовать Hosting.HostingEnvironment.MapPath(path);

person jdisla    schedule 02.02.2016

Попробуйте добавить System.Web в качестве ссылки на свой проект.

person jabu.hlong    schedule 28.08.2015

Вам необходимо добавить ссылку (System.Web) Ссылку на System.Web

person Aaditya Dubey    schedule 07.10.2015

Я знаю, что этому посту несколько лет, но я добавляю эту строку в начало вашего класса, и вы все равно сможете использовать Server.MapPath.

Dim Server = HttpContext.Current.Server

или ты можешь сделать функцию

Public Function MapPath(sPath as String)
    return HttpContext.Current.Server.MapPath(sPath)
End Function

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

person Guy Cothal    schedule 06.04.2020

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

Что мне нужно сделать, чтобы Server.MapPath заработал?
Я использую System.Web;

Написанный нами класс должен реализовывать System.Web.UI.Page.

Скажем, например, наше имя класса - MyClass.

public class MyClass: System.Web.UI.Page
{
// Code runs here 
}
person Loves2Code    schedule 06.07.2021

person    schedule
comment
Ответы, состоящие только из кода, считаются низкокачественными: обязательно объясните, что делает ваш код и как он решает проблему. Если вы добавите дополнительную информацию в свой пост, это поможет как спрашивающему, так и будущим читателям. См. Объяснение полностью основанных на коде ответов - person Calos; 12.03.2020