Frage

Ich habe eine neue Anwendung in einem Netzwerk geschrieben habe ich nicht in vorher gearbeitet, und in ein Problem laufen lasse.

Wenn ich den folgenden C # -Code:

FileStream fs = File.Create(@"\\MyServer\MyShare\testing.txt");
fs.Close();

In einer Konsolenanwendung, dieser Code korrekt ausgeführt.

In einer ASP.Net-Anwendung, erhalte ich diesen Fehler: Anmeldung fehlgeschlagen:. Unbekannten Benutzername oder falsches Kennwort

In der ASP.Net-Anwendung, wenn ich in identity impersonate = "true" hinzufügen, erhalte ich diese Fehlermeldung:. Zugriff auf den Pfad '\ MyServer \ MyShare \ testing.txt' verweigert

Ich habe nie lief in die Anmeldefehlermeldung vor; wo kommt das her? Wenn ich eine Anwendung auf dem Server zu erstellen und diese an die phsyical Lage schreiben, es funktioniert gut (so gibt Sicherheit gut ist), scheint es so, als ob die Sicherheit für die Aktie nicht funktionierte (auch wenn es ‚Jeden‘ gesetzt hat auf volle schreibt), oder es ist etwas auf der Serverebene fehlt, in denen im allgemeinen sehen alles erlaube ich nicht.

Wer weiß, was ich hier fehlt? Ich habe andere Anwendungen geschrieben, die ähnliche Dinge taten und noch nie in dieses Problem

Danke!

War es hilfreich?

Lösung

Update:

Also ich glaube, ich gepostet zu früh ... Der Grund, es wurde auf meinem localhost Fehler war aufgrund des Verzeichnisses gesetzt wird als die anonymen Zugriff erlauben (so die Seite wurde nicht Identitätswechsel, der Benutzer war ‚‘) <. / p>

Es begann auch als auch auf dem Server arbeiten; aber da war nichts geändert ... Ich weiß nicht, ob etwas während der App-Ausfallzeiten / shutdown oder was ausgelöst wurde, aber alles wie erwartet funktioniert.

Danke für die Kommentare!

Andere Tipps

Das Problem ist, dass mit Identität zu falschem Konto des ASP.NET-Arbeitsprozesses gesetzt IMPERSONATE versucht, den Anteil zu schreiben, in der Regel, dass das NETWORK SERVICE oder ASPNET-Konto. Je nachdem, welche Version von Windows Sie ausführen.

Einstellung auf true ausgeben, ohne einen Benutzername oder Passwort Angabe wird die aktuellen Benutzer-Authentifizierung verwenden, um zu versuchen, die Anfrage zu machen.

Sie müssen die Arbeitsprozesskonto Berechtigungen entweder eine Finanzhilfe, die höchstwahrscheinlich nicht möglich ist. Oder B ein bestimmtes Konto erstellen, die Ihre Anwendung ausgeben kann, und geben Sie dann die Anmeldeinformationen in der web.config in der Identität Tag.

In der Standardeinstellung ASP.NET-Anwendungen laufen als meincomputer \ IUSR_ meincomputer. Sie haben entweder auf Haupt die Berechtigungen für die Freigabe auf die jeder zu öffnen (welche noch nicht funktionieren, wenn die Maschinen nicht auf der gleichen Domain) sind, oder Ihre IIS-Anwendung als jemand laufen, die Zugriff auf die Freigabe hat.

Sie können den Benutzer ändern, die die ASP.NET-Anwendung läuft unter durch:

.Open Verwaltung -> Internet Information Services und klicken Sie auf rechts auf der Website oder das virtuelle Verzeichnis, das die Anwendung enthält, und klicken Sie auf Eigenschaften . Wählen Sie die Verzeichnis Sicherheit und klicken Sie auf Bearbeiten . Schließlich wird in der Anonymous Access Geben Sie den Benutzernamen und das Kennwort eines Benutzers, der Zugriff auf die Freigabe hat.

Mike

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