Не може да се използва Server.MapPath

Какво трябва да направя, за да накарам Server.MapPath да работи?
Имам using System.Web;

какво друго? Когато пиша Server, няма опция за бърз резултат (intelli-sense) за Server.

Някаква помощ?


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 Името на типа или пространството от имена „Хостинг“ не съществува в пространството от имена „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("~/") дава нула, ако го извикаме от нишка.

Така че, опитайте се да използвате

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

Аз съм изцяло за улесняване на нещата. Добавих го и към моя клас Помощни програми, в случай че се натъкна на това отново.

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