9 Stimmen

IIS-Virtual-Verzeichnis nicht auf Netzlaufwerk (mit Laufwerkbuchstaben) abbilden - Datei kann nicht erstellt werden

Ich benutze C#/ASP.NET, IIS6 auf Windows Server 2003.

  1. Karten Sie den Datenserver freigegebenen Ordner auf den Webserver mit dem Laufwerksbuchstaben V:\

  2. Auf dem Webserver hat IIS ein virtuelles Verzeichnis erstellt und auf den 'lokalen Speicherort' mit V:\ verwiesen. Da es kein 'Verbinden als' gibt, bin ich mir nicht sicher, welcher BENUTZER verwendet wird

  3. In meinem WebMethod möchte ich eine Datei im freigegebenen Ordner mit FileStream.Write() erstellen.

    Ich habe eine IO-Ausnahme bei der Aktion bekommen, irgendeinen Hinweis?

Nachtrag: Ich habe ASPNET/NETWORK SERVICE auf dem Datenserver freigegebenen Ordner hinzugefügt.

Danke! Gavin

11voto

Kev Punkte 115293

Fest zugeordnete Netzlaufwerke sind spezifisch für das Benutzerkonto, das sie erstellt hat:

Mit zugeordneten Laufwerken unter IIS - MS KB257174 verwenden

Die bevorzugte Methode zum Zugriff auf Inhalte für den Webserver, die auf einem entfernten Computer existieren, besteht darin, Freigaben zu verwenden, die dem universellen Namenskonvention (UNC) folgen.

Es ist sehr wahrscheinlich, dass NETWORK SERVICE (oder wenn Sie ASP.NET unter einem anderen Benutzerkonto ausführen, das Konto des anonymen Benutzers der Website) diese Zuordnung nicht hat.

Um den Speicherort zu ändern, auf den das virtuelle Verzeichnis zeigt, navigieren Sie im IIS-Manager zu Ihrer Website, klicken mit der rechten Maustaste auf das virtuelle Verzeichnis und wählen Eigenschaften aus. Wählen Sie dann "Eine Freigabe auf einem anderen Computer":

alternativer Text

0voto

Matt Punkte 25034

Die Website im IIS hat einen entsprechenden App-Pool, der Ihnen anzeigen sollte, unter welchem Benutzer Ihr Code ausgeführt wird. Dann müssen Sie die entsprechenden Berechtigungen für diesen Benutzer für diesen freigeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X