Scrivere su unità di rete

mercoledì 01 luglio 2009 - 00.20

zagor76 Profilo | Newbie

Salve a tutti, è possibile scrivere tramite un'applicazione asp.net un file su una unità di rete?

Dim percorso = "Q:\pippo.txt"
Dim sw As StreamWriter = New StreamWriter(percorso, True, System.Text.Encoding.Default)
sw.WriteLine(" - Data: " + DateTime.Now.ToString())
sw.Close()

dove Q: è una unità di rete a cui ho dato tutti i permessi a tutti gli utenti , ma l'errore è sempre quello:


Accesso al percorso 'Q:\pippo.txt' negato.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.UnauthorizedAccessException: Accesso al percorso 'Q:\pippo.txt' negato.

ASP.NET non è autorizzato ad accedere alla risorsa richiesta. Provare a concedere diritti di accesso alla risorsa all'identità di richiesta di ASP.NET. ASP.NET dispone di un'entità di processo di base (in genere {MACHINE}\ASPNET su IIS 5 o Network Service su IIS 6) che viene utilizzata se l'applicazione non esegue la rappresentazione. se l'applicazione esegue la rappresentazione tramite <identity impersonate="true"/>, l'identità sarà rappresentata dall'utente anonimo (in genere IUSR_MACHINENAME) o dall'utente autenticato che ha eseguito la richiesta.

Per concedere l'accesso a un file ad ASP.NET, fare clic su di esso con il pulsante destro del mouse in Esplora risorse, scegliere Proprietà e fare clic sulla scheda Protezione. Fare clic su "Aggiungi" per aggiungere l'utente o il gruppo appropriato. Evidenziare l'account ASP.NET e selezionare la casella relativa all'accesso desiderato.

Mi sembra strano che non si possa salvare un file su di una posizione diversa da quella su cui gira IIS, ad esempio su di un file file server, magari accessibile da altre applicazioni che possano prendere file caricati tramite web...

Il fatto è che ho provato a mappare una risorsa di rete condivisa sulllo stesso server su cui gira IIS, dando controllo completo a tutti gli utenti /gruppi disponibili, ma nulla da fare.

grazie.
Ciao

freeteo Profilo | Guru

Ciao,
l'utente con cui gira il servizio di asp.net (se non ricordo male è ASPNET il nome dell'utente di default) probabilmente non ha mappato quell'unità Q, hai provato con il percorso UNC invece dell'unità di rete? fai una prova intanto.

Poi cmq puoi valutare di far girare il tuo applicativo con un utente diverso da quello, ti basta usare identity nel web.config:
http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5