none
Absolute Pfade außerhalb des Websiteverzeichnisses ansprechen RRS feed

  • Frage

  • Hallo Zusammen,

    ich habe ein Problem und die Hoffnung, dass mir hier jemand helfen kann.
    Ich habe ein Webportal erstellt, dieses ist abgelegt auf dem Server unter:

    C:\Users\MeinName\Desktop\WebPortal\

    Über das Webportal können verschiedenste Dateien geöffnet und hochgeladen werden.
    Da es zudem eine Access-Datenbank gibt, die ebenfalls auf gleiche Dateien zugreifen soll, können diese Dateien nicht im gleichen Verzeichnis abgelegt werden.

    Diese liegen unter:
    I:\Users\Dokumentlage\
    Das Laufwerk ist ebenfalls auf dem Server eingebunden.

    Diese beiden Verzeichnisse müssen gezielt auf die Weise getrennt sein. Leider kriege ich hierdurch jedoch folgende Fehlermeldung:
    There is a physical path, but a virtual path was expected.
    Folgende relevante Zeile --> Bericht_Hochladen.PostedFile.SaveAs(Server.MapPath("I:/Users/Dokumentlage/") + "Dokument.pdf")

    Wie müsste ich den Code schreiben, damit das Programm das Dokument auch aus dem Webportal heraus öffnen kann?

    Freue mich über Hilfe!

    David

    Freitag, 23. September 2016 08:45

Antworten

  • Hi,

    wenn Du einen absoluten Pfad hast, darfst Du nicht mit Server.MapPath arbeiten. Lass das also in dem Fall weg und schreib nur:

    Bericht_Hochladen.PostedFile.SaveAs( "I:\Users\Dokumentlage\Dokument.pdf" )

    / in den Pfaden ist nicht sonderlich gut gewählt. Unter Windows verwendet man für Pfadangaben im Dateisystem \

    Das Netzlaufwerk bringt dir allerdings nichts, da IIS als Dienst läuft und dem dieses Netzlaufwerk nicht bekannt ist. Du musst/solltest daher mit dem UNC Pfad arbeiten.

    Bericht_Hochladen.PostedFile.SaveAs( "\\server\Freigabe\Users\Dokumentlage\Dokument.pdf" )

    Falls Du denkst "Funktioniert aber lokal doch!?": Dann arbeitest Du wahrscheinlich mit dem IIS Express, nicht mit dem richtigen IIS. Das ist ein ziemlich großer Unterschied (kurz gesagt: IIS Express = normale Anwendung mit den Benutzerrechten, die dein an Windows angemeldeter Benutzer hat, IIS = Dienst mit separaten Rechten und allen Einschränkungen eines Diensts)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 23. September 2016 08:54
    Moderator