2009-08-02 23 views
5

Possiedo un'applicazione ASP.NET che tenta di scrivere file sul server Web durante il runtime. Nel mio ambiente di sviluppo, funziona. Tuttavia, quando ho distribuirlo al server di produzione, ed eseguo il codice, viene visualizzato un errore che indica:ASP.NET + Accesso negato al percorso

"Access to the path 'C:\Inetpub\wwwroot\MyWebApp\DirToWriteTo\' is denied." 

mio server di produzione è un Window Server 2003 macchina. L'applicazione Web è impostata per consentire l'accesso anonimo tramite l'account IUSR_TEMPLATE.

Cosa sto sbagliando?

Grazie!

risposta

1

Il problema più probabile è che l'utente anonimo non disponga dell'accesso in scrittura alla posizione.

Quello che vorrei fare è creare una voce web.config per la posizione in cui si desidera scrivere e utilizzare quella chiave di configurazione come directory scrivibile. Ciò ti consentirà di avere una configurazione separata per il tuo server di produzione e il tuo computer di sviluppo, se necessario.

Avanti, basta dare accesso in scrittura alla directory definita nella configurazione per l'utente IUSER_TEMPLATE, o come ha detto il Thorarin Network Service, nel qual caso è necessario impostare la rappresentazione identità nel web.config in modo da poter specificare l'utente (a meno che non si configuri l'utente tramite il pool di app). Questo dovrebbe risolvere il problema.

+1

Solo se 'Web.config' ha un' 'nella sua' '' sezione. In caso contrario viene utilizzata l'identità impostata per il pool di applicazioni. Per impostazione predefinita, è * Servizio di rete * (che ha un accesso molto limitato) – Thorarin

+0

Questo è vero. Inizialmente non ci pensavo. Aggiornerò la mia risposta per includerla. –

1

Se si dispone di Windows 2008 o superiore, provare a dare i permessi di scrittura per IIS_IUSRS.

(servizio di rete ha anche lavorato per me in passato. Da quello che ho letto here, dipende dal sistema operativo del server.)

enter image description here

0

Nel mio caso, Visual Studio 2015 ha cambiato di un progetto esistente Utente IIS AppPool al valore predefinito di DefaultAppPool, che mi ha fornito errori di autorizzazione, errori di configurazione, errori del provider di ruolo e errori di riferimento null. Dopo aver scoperto questo e averlo modificato nel pool di applicazioni in cui sono state impostate le autorizzazioni della cartella, le cose hanno iniziato a funzionare di nuovo.