2009-05-14 12 views
33

Il servizio Web ASP.Net non può essere eseguito perché il pool di applicazioni non è in grado di avviarsi a causa della crisi di identità che sta attraversando.Errore ASP.Net: "L'identità del pool di applicazioni non è valida"

L'utente che sto usando nel pool di app è un utente di dominio, è un amministratore locale, è in IIS_WPG, ho dato "atto come parte delle autorizzazioni del sistema operativo" - niente. Nada. Non riesce ad avviare il pool di applicazioni ogni volta.

L'aggiunta di un utente a IIS_WPG di solito è ciò che manca, ma suppongo che ci sia qualcos'altro.

cose che ho provato:

  • Aggiunta all'utente di IIS_WPG
  • Aggiunta utente al gruppo amministratore locale e aggiungendo il "Agisci come parte del sistema operativo" giusti.
  • Aspnet_regiis -ga
  • riavvio ...
  • la password Controllato
  • ricreato la piscina app e assegnando solo la mia applicazione ad esso

P.S. Se utilizzo l'utente del servizio di rete, tutto funziona - è solo il mio utente "personalizzato" che sta fallendo. L'accesso (interattivo) con questo utente funziona.

Edit:

La soluzione è come descritto in the accepted answer (aggiungendo il "Accesso come servizio" diritto di utente identità del pool di applicazioni).

mi limiterò a aggiungere, per riferimento futuro, per chi incontrare il seguente messaggio quando si tenta di aggiungere il "Accesso come servizio" diritto a un utente di dominio:

"This setting is not compatible with computers running Windows 2000 Service Pack 1 or earlier...."

Sappiate che questo ha niente a che fare con Windows 2000 ed è solo la politica di gruppo del dominio che ti impedisce di assegnare questo diritto all'utente.

+0

che cosa segnala esattamente il registro degli eventi? – AviD

+1

Assaf: se si stanno creando account personalizzati da utilizzare come identità del pool di applicazioni, è necessario utilizzare aspnet_regiis -ga . – Kev

+0

Kev - Ho provato e non è stato utile –

risposta

45

Hai attivato "Accedi come servizio" per l'account?

Start -> Pannello di controllo -> Strumenti di amministrazione -> Criteri di protezione locali -> Criteri locali -> Assegnazione diritti utente -> Accesso come un servizio

(assicurati che il tuo account è in questo elenco, direttamente o indirettamente ; è stato anche suggerito di impostare: Accedi a questo computer dalla rete; Nega accesso localmente; Accedi come lavoro batch)

Inoltre, assicurarsi che l'account abbia "Leggi & Esegui", "Elenca contenuto cartella". "e" Leggi "l'accesso al file system che è alla base del sito web/dell'applicazione.

+0

Ho provato a selezionare Accedi come servizio, ma non ci riesco. Lo snap-in MMC dice: "questa impostazione non è compatibile con i computer che eseguono Windows 2000 Service Pack 1 o precedenti ...." Naturalmente, sto utilizzando XP64 con SP3. Questo è molto sospetto. Potrebbe essere un messaggio di errore errato che è in realtà dovuto a criteri di gruppo che mi impediscono di cambiare questo diritto? –

+0

Non ho visto quel messaggio; Onestamente non lo so. –

+0

http://community.spiceworks.com/topic/29356 –

0

Che cosa sta succedendo è probabile che si esegua l'applicazione in un pool che esegue applicazioni utilizzando una versione diversa del framework .NET. Assicurati che tutte le tue applicazioni all'interno di quel pool stiano eseguendo la stessa versione. Se tali app devono essere eseguite con una versione diversa da questa, creare un nuovo pool e aggiungervi l'app.

+0

buona idea. Controllerò ... –

+0

No, no. Ed è improbabile che sia la causa perché l'avviso nel registro eventi sul problema dell'identità si verifica molto prima ancora che io provi a visualizzare la pagina web (caricando in tal modo la DLL ..) –

0

So che è semplice, ma avete controllato che la password sia corretta?

+2

sì, e l'ho resettato e riprovato. ho anche provato a eseguire calc con runas con esso .. (che funziona) –

21

Provare a eseguire il seguente comando nella cartella C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727:

aspnet_regiis -ga <your_app_pool_user> 

Per ulteriori informazioni sulla configurazione di un account utente da utilizzare come identità del pool di applicazioni vedere il seguente articolo:

How To: Create a Service Account for an ASP.NET 2.0 Application (MSDN)

+0

la riga di comando non ha aiutato. –

+1

Se si creano account personalizzati da utilizzare come identità del pool di app, è comunque necessario eseguire comunque tale comando. Imposta tutte le assegnazioni dei diritti utente corrette, le autorizzazioni di registro, i permanenti NTFS ecc. – Kev

+1

Questo ha funzionato per me. Probabilmente si dovrebbe notare per farlo uscire dalla cartella della versione di framework appropriata però ... – CodeRedick

0

Avendo avuto questo problema prima e non essendo in grado di rintracciare il motivo per cui simpatizzo!Alcune indicazioni che potrebbero aiutare:

  • Controllare la password è corretta (mi dispiace va detto)
  • Utilizzare un nuovo pool di app in cui nessun altro sito web è in esecuzione
  • Assicurarsi di aver eseguito aspnet_regiis -ga per impostare le autorizzazioni necessarie

Se tutto il resto fallisce: - Stop l'applicazione ed eliminare il pool di applicazione - eliminare l'utente - Ricreare l'utente - Run aspnet_regiis -ga - Configura un nuovo pool di app in esecuzione con questo utente - Esegui il sito in questo pool Che insieme a copiare e incollare la password complessa che stavo usando ha funzionato per me!

+1

Ho fatto tutto questo tranne cancellare l'utente (che è un utente di dominio, e funziona bene su molte altre macchine, quindi non sto per eliminarlo). –

1

Assicurarsi che sia presente una cartella denominata c: \ inetpub \ temp \ apppools. In caso contrario, crearlo.

+0

Non ha avuto tale cartella. Creato. Ancora non funziona (identità non valida). C'è un passaggio in più? –

0

Avete già una politica di gruppo che sta estraendo l'account dal gruppo iis_wpg? Abbiamo questo (o un problema simile) frequentemente quando, per qualsiasi motivo, un processo di lavoro o un servizio deve essere eseguito con un account personalizzato.

+0

No, l'account è in WPG. –

1

Verificare che l'account utente che tenta di accedere al pool di applicazioni sia membro del gruppo IIS_USRS in AD.

0

L'account utente del pool di applicazioni potrebbe essere bloccato.

0

Un altro modo in cui ciò può accadere è se si dispone di script CGI. Per impostazione predefinita, gli script CGI vengono eseguiti come utente Windows che accede al sito web. Al fine di eseguire i vostri script CGI con un account specifico, conto è necessario un passo in più:

IIS 7+

Vai alla sezione CGI in config del tuo sito web in inetmgr.exe. Imposta la rappresentazione su falso.

IIS 6

eseguire questi comandi come amministratore:

cd \inetpub\adminscripts 
cscript.exe Adsutil.vbs SET W3Svc/CreateProcessAsUser false 

passo successivo: ottenere il vostro reparto IT di aggiornare tutte le macchine WS2003 ...

0

Dopo aver seguito tutti gli altri suggerimenti:

  1. Check "Accesso come servizio" e "Accesso come un processo batch" Autorizzazioni
  2. Controlla i permessi della cartella C: \ Windows \ system32 \ inetsrv, ecc
  3. In autorizzazioni di controllo metabase Explorer per gruppo IIS_WPG

Ricordatevi prima di riavviare il servizio di amministrazione di IIS!

0

Un'altra cosa da non sottovalutare potrebbe essere che, se si tratta di un nuovo account utente creato da un amministratore, potrebbe essere applicata una politica predefinita come "cambia la password al primo accesso". Se questo è il caso e l'accesso non è ancora avvenuto, anche questo bloccherà efficacemente l'account utente dall'esecuzione del servizio.

Questo non si applica al caso dell'OP dal momento che accenna che può accedere in modo interattivo usando l'account, ma mi sono imbattuto in questo oggi e potrebbe farlo anche qualcun altro.

0

Nel mio caso il problema era che stavo cercando di utilizzare un account di dominio mentre il controller di dominio aveva un problema con la mia macchina. Avevo appena creato una nuova VM con una versione più recente di Windows (Windows 10) e avevo chiesto all'amministratore del dominio di aggiungerla al dominio, ma ho mantenuto lo stesso hostname sull'altra macchina.

Inoltre, nel Visualizzatore eventi ho trovato messaggi di errore relativi al controller di dominio e così via, che mi hanno dato un indizio.

Ho dovuto rimuovere la macchina dal dominio e aggiungerla di nuovo, e il problema è stato risolto.

0

Pubblicare una risposta semplice per completezza perché stavo ottenendo lo stesso errore ma quello che per me è stato risolto è stato includere il dominio con lo username quando si imposta l'identità. L'utente era un utente di dominio valido e un utente per il server e l'ho aggiunto al gruppo IIS_ manualmente ma nessun dado finché non ho provato ad aggiungere il dominio come prefisso, ad es. "Noi \ SVC-myaccount".

Problemi correlati