Buongiorno, sto sviluppando un applicativo in MVC5 ed avrei necessità di riavviare in maniera condizionata l'application Pool.
Guadando un pò online ho trovato questo codice:

using Microsoft.Web.Administration;


string siteName = HostingEnvironment.ApplicationHost.GetSiteName();
using (ServerManager iisManager = new ServerManager())
{
SiteCollection sites = iisManager.Sites;
foreach (Site site in sites)
{
if (site.Name == siteName)
{ iisManager.ApplicationPools[site.Applications["/"].ApplicationPoolName].Recycle();
}
}
}


Il mio problema è questo: in debug su IISEXPRESS gira correttamente, una volta pubblicato in locale su IIS (versione 10.0.17134.1) configurato in "Integrata" e ApplicationPoolIdentity" mi restituisce questo errore:

Nome file: redirection.config
Errore: Impossibile leggere il file di configurazione a causa di autorizzazioni insufficienti

Ho provato allora a farmi ritornare l'utente dell'application pool per vedere se nel caso aggiungendo i permessi alla cartalla di system32 (come dicevano alcuni forum online che però non mi convincono molto) con questo comando System.Security.Principal.WindowsIdentity.GetCurrent().Name; ed è successo questo:

- IISEXPRESS : "MONKEY-DELL-MAR\info"
- IIS : null


qualcuno saprebbe dirmi cosa devo fare per far funzionare la procedura anche su IIS?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


Nome file: redirection.config
Errore: Impossibile leggere il file di configurazione a causa di autorizzazioni insufficienti

Mah, per ora sembra semplicemente che l'utente virtuale con cui gira il tuo application pool non riesca ad accedere alla cartella in cui hai pubblicato i file dell'applicazione. Per caso hai scelto una cartella tipo C:\Users\NomeTuoUser\...?

Se sì, quella è una cartella a cui normalmente può accedere solo il tuo utente di Windows e devi concedere i necessari privilegi all'utente virtuale affinché riesca a leggere i file contenuti in essa. Quindi: tasto destro sulla cartella -> Sicurezza -> Modifica... -> Aggiungi... e quindi aggiungi questi due utenti con privilegi di lettura ed eventualmente di Modifica.
  • IIS AppPool\NomeTuoApplicationPool
  • IUSR


Oppure, l'altra soluzione è pubblicare i file dell'applicazione da un'altra parte, ad esempio su un disco fisso D: che non ha restrizioni particolari.

Risolto questo, vedi se ti si carica il sito e se riesci a far funzionare il codice che hai postato. Può darsi che l'utente virtuale debba essere aggiunto in qualche gruppo di Windows che gli dia i necessari privilegi per riavviare l'applicazione.

ciao,
Moreno

Enjoy learning and just keep making
Pubblicato su un server di test wwwroot....
Comunque grazie farò delle prove o cerco un altra procedura.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.