2010-11-19 8 views
2

Momentan verwende ich die folgenden Codes, um eine Datei in einem Verzeichnis auf meiner Website zu speichern.Server.MapPath gibt falschen Pfad, Ausnahme "Das Format des angegebenen Pfads wird nicht unterstützt", wenn auf dem IIS-Server ausgeführt wird?

//save the file to the server 
String savePath = Server.MapPath("..\\temp\\") + file; 
FileUpload.PostedFile.SaveAs(savePath); 

Wenn ich die Anwendung auf meinem Computer ausgeführt wird, gibt es den Pfad:

„E: \ dotnet \ Project \ Implementierung \ Source Code \ Project \ Project.UI \ temp \ Sample. csv“

wenn jedoch auf einem realen Server läuft, wirft es Ausnahme:

System.NotSupportedException: The given path's format is not supported. 

Der erwartete Weg, den ich ist haben möchte "C: \ inetpub \ wwwroot \ Project \ temp".

Mache ich Dinge richtig oder nicht? Wenn nicht, kann mir jemand den richtigen Weg erklären, dies zu tun?

Antwort

1

Server.MapPath ordnet einen virtuellen Pfad einem physischen Pfad auf dem Server zu. Wenn Sie Ihre Schrägstriche mit ersetzen zukunfts schlitzt Sie in Ordnung sein sollte:

Server.MapPath("../temp/") 

Sie auch die Wurzel relativen Pfad verwenden:

Server.MapPath("~/temp/"); 
+0

ich Ihre Lösungen ausprobiert, die es den gleichen Weg zurück, das ich vor der wenn das Web lokal ausgeführt wird. Aber immer noch die Ausnahme "Das Format des angegebenen Pfads wird nicht unterstützt", wenn es auf IIS ausgeführt wird. Pls Hilfe :( – Leo

+0

macht mir nichts aus, ich habe das Problem herausgefunden: Schreibzugriff verweigert in diesem Verzeichnis! – Leo