Greifen Sie aus einer ASP.NET -App auf eine Netzwerkfreigabe zu. Funktioniert in Visual Studio, aber nicht in IIS, warum?

StackOverflow https://stackoverflow.com/questions/5341771

  •  27-10-2019
  •  | 
  •  

Frage

Ich habe einen Netzwerkanteil im Intranet, mit dem der Zugriff auf alle (Gast) Zugriff auf den Schreibzugriff ermöglicht.

Also habe ich in C# ein Programm (Mojoportal -Modul, sowieso ist es dasselbe, glaube ich) geschrieben, das einige Dateien auf diesem Weg schreibt, und in Visual Studio funktioniert großartig.

Wenn ich das gleiche Programm in IIS 7.5 benutze, funktioniert nicht, ich bekomme diese Ausnahme:

System.net.WebException: Eine Ausnahme trat während einer Webclient -Anfrage auf. ---> system.io.ioException-Anmeldung Fehler: Unbekannter Benutzername oder schlechtes Passwort.

Nun ... da der Zugang zum SMB -Anteil an alle gewährt wird, verstehe ich nicht, warum er nicht auf IIS funktioniert ...

Der Code lautet:

WebClient wc = new WebClient();
wc.DownloadFile(urltodownload, smbshare);

Was kann es sein? Vielen Dank

War es hilfreich?

Lösung

Ihr IIS -Dienst wurde nicht für den standardmäßigen Zugriff auf Dateifreigabe erteilt. Sie können versuchen, Ihre Website mit App -Pool -Identität auszuführen, die auf eingestellt sind Lokales System, oder manuell die Identität, unter der Code von web.config ausgeführt wird, manuell steuern:

<system.web>
  <identity impersonate="true" userName="user with correct rights or admin" password="password"/>
  ...

Andere Tipps

Haben Sie versucht, die Anmeldeinformationen festzulegen?

Ich glaube, dass die Gruppe immer noch eine gültige Anmeldeinformation erfordert, ohne die Anmeldeinformationen festzulegen, die Sie anonym sind ...

wc.Credentials = CredentialCache.DefaultCredentials;

Es sieht so aus, als wäre es kein Problem beim Zugriff auf die SMB urltodownload. Wie Richard sagte, möchten Sie möglicherweise die Standardanmeldeinformationen verwenden, dh dh wc.UseDefaultCredentials = true; oder ein bestimmter Satz von Anmeldeinformationen oder einrichten der Website unter urltodownload anonyme Verbindungen akzeptieren.

Beziehen Sie sich auf das, was verursachen kann WebException für die DownloadFile Methode @ Msdn.

Sie benötigen eine Art Anmeldeinformationen, um eine Aktie von ASP.NET zu verwenden. Sie können eine Identitätswechsel auf dem Web.config einrichten oder WC.Credentials mithilfe von Netzwerkanmeldeinformationen festlegen. Im web.config würden Sie den Follwoing im Abschnitt "System.Web" festlegen:

<identity impersonate="true" userName="username_here" password="password_here" />

Für meine Visual Studio Application (WinForms) war es ein einfacher Akt des Erstellens eines starken Namensschlüssels (SNK) für die Anwendung.

Ich bin mir nicht sicher warum.

Vielleicht hat das Erstellen eines SNK in Visual Studio die Möglichkeit, diese Anmeldeinformationen festzulegen, auf die sich die anderen Autoren über mir beziehen.

Hoffe das hilft.

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