Domanda

Ho scritto una nuova applicazione in una rete che non ho lavorato in prima, e sono in esecuzione in un problema.

Se ho il seguente codice C #:

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

In un'applicazione console, questo codice viene eseguito correttamente.

In un'applicazione ASP.Net, ricevo questo errore: Accesso non riuscito:. Nome utente sconosciuto o password

Nella domanda di ASP.Net, se aggiungo in identity impersonate = "true", ottengo questo errore:. Accesso al percorso '\ MyServer \ MyShare \ testing.txt' è negato

Non ho mai incontrato quel messaggio errore di accesso prima; dove è il prossimo da? Se ho creare un'applicazione sul server e lo hanno scrivere alla posizione phsyical, funziona benissimo (per cui la sicurezza non è buona), sembra proprio come se la sicurezza per la quota non funziona (anche se ha impostato 'Tutti' al scrive completi), o c'è qualcosa che manca a livello di server in cui io non sono autorizzato a visualizzare qualcosa in generale.

Qualcuno sa che cosa mi manca qui? Ho scritto altre applicazioni che ha fatto cose simili e non hanno mai incorrere in questo problema

Grazie!

È stato utile?

Soluzione

Aggiornamento:

Quindi penso che ho postato questo troppo presto ... Il motivo che stava venendo a mancare sul mio localhost era dovuto alla directory viene impostata come consentire l'accesso anonimo (in modo che la pagina non è stata impersonando, l'utente è stato '') <. / p>

E 'anche iniziato a lavorare sul server pure; Tuttavia, nulla è stato cambiato lì ... non so se qualcosa è stato attivato nel corso del tempo di inattività app / spegnimento o cosa, ma di lavoro di tutto come previsto.

Grazie per i commenti!

Altri suggerimenti

Il problema è che con identity impersonate impostato su false l'account del processo di lavoro ASP.NET sta cercando di scrivere la condivisione, in genere che è il servizio di rete o account ASPNET. A seconda della versione di Windows in esecuzione.

impostazione impersonare al vero, senza specificare un nome utente o password utilizzerà l'autenticazione degli utenti attuali per cercare di fare la richiesta.

Sarà necessario o A concedere le autorizzazioni di account processo di lavoro, che molto probabilmente non è possibile. O B creare un account specifico che l'applicazione può impersonare, e quindi specificare le credenziali all'interno del web.config nel tag di identità.

Per impostazione predefinita, le applicazioni ASP.NET eseguito come YourMachine \ IUSR_ YourMachine. O si deve aprire le autorizzazioni sulla condivisione al Everyone principale (che ancora può non funzionare se le macchine non sono sullo stesso dominio), o eseguire l'applicazione IIS come qualcuno che ha accesso alla condivisione.

È possibile modificare l'utente che l'applicazione ASP.NET viene eseguito con da:

.Open Strumenti di amministrazione -> Internet Information Services , quindi fare clic destro sul sito o directory virtuale che contiene l'applicazione e fare clic su Proprietà . Scegliere la Protezione directory e fai clic su Modifica . Infine, nella sezione accesso anonimo digitare il nome utente e la password di un utente che ha accesso alla condivisione.

Mike

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top