2012-06-19 19 views
69

Co muszę zrobić, aby zadziałało Server.MapPath?
Mam using System.Web;Nie można użyć Server.MapPath

co jeszcze? Po wpisaniu Server nie ma opcji szybkiego wyniku (intelli-sense) dla Server.

Każda pomoc?

+1

Musisz podać więcej informacji. Jaki to jest projekt? Dlaczego chcesz uruchomić Server.MapPath? Czy jest to projekt formularzy internetowych i czy piszesz kod w podklasie strony lub w funkcji renderowania ASPX? – Dai

+0

C# WinForm .. Chcę, aby to sprawdzić dostępność pliku na serwerze – a1204773

Odpowiedz

206

można spróbować użyć tej

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

lub użyj HostingEnvironment.MapPath

System.Web.Hosting.HostingEnvironment.MapPath(path); 
+1

Nie działają .. .. Błąd 1 Typ lub nazwa przestrzeni nazw "HttpContext" nie istnieje w przestrzeni nazw "System.Web" (czy brakuje odniesienia do zestawu?) ... Błąd 2 Typ lub nazwa przestrzeni nazw "Hosting" nie istnieje w namespace 'System.Web' – a1204773

+0

wygląda na to, że używasz WinForm, możesz zobaczyć ten link następnie http://www.debugging.com/bug/18951 – DotNetUser

+5

"HostingEnvironment.MapPath" pracował dla mnie –

13

Twój projekt wymaga odniesienia do zespołu System.Web.dll. Serwer jest obiektem typu HttpServerUtility. Przykład:

HttpContext.Current.Server.MapPath(path); 
+3

Nie mogę znaleźć takiego odniesienia znalazłem tylko tych dwóch: System.Web.ApplicationServices, System.Web.Services .... – a1204773

0

spróbuj dodać System.Web jako odniesienie do projektu.

0

firt dodać odwołanie do System.web, jeśli nie masz. Zrób to w folderze Referencje.

Można następnie użyć Hosting.HostingEnvironment.MapPath(path);