Frage

Ich bin in einem virtuellen Verzeichnis mir den Zugriff auf Dateien versuchen, zum ersten Mal in IIS erstellt, aber seltsame Ergebnisse bin immer.

Betriebssystem: Windows XP Pro

IIS 5.1

Development Platform: Visual Studio 2008

Sprache: C #

Virtual Directory Name: Portal

Lokaler Pfad: C: \ digital_communications_report_portal

Standard-Website Lokaler Pfad: c: \ inetpub \ wwwroot

Ich kann die Datei herunterladen unter http: //localhost/portal/testFile.xlsx ohne Problem dar.

Ich versuche, entweder dieser

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

und erhalten „C: \ Dokumente und Einstellungen \ jjohnson \ Eigene Dateien \ Visual Studio 2008 \ WebSites \ clientsite \ localhost \ portal \ testFile.xlsx“, die mit dem virtuellen Pfad meines Projektpfad ist am Ende geschlagen und ist nicht ein gültiger Pfad. Ich versuche, nehmen die Tilde oder localhost und ich erhalten „Fehler den Pfad‚/portal/testFile.xlsx‘abzubilden.“ Ausnahme.

Alle Ideen, was ich falsch mache?

War es hilfreich?

Lösung

Wenn ich mich nicht irre, ist Server.MapPath(ResolveUrl("~/relative/path/to/file")) nicht das, was Sie wollen. Es wird eine /rooted/path/to/file erzeugen, die, wenn sie Server.MapPath() weitergegeben wird keine gültige Lage ergeben.

Stattdessen verwenden Sie einfach Server.MapPath("~/relative/path/to/file");

Update

Das Problem, das Sie erleben ist aufgrund der Tatsache, dass Sie den Namen des virtuellen Verzeichnisses sind inklusive ( „Portal“) in Ihre relative URL. Ihre relative URL muss nicht mit dem Namen der virtuellen Verzeichnis angeben, nur den Pfad zu der gewünschten Datei relativ zum Stamm der Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top