HTTP Errore 503. Il servizio non è disponibile. Il pool di app si interrompe durante l'accesso al sito Web


167

Ci sono molti post su questo e ormai ho provato molte cose. Ma inutilmente. Fondamentalmente uno sviluppatore Winforms, ho iniziato a lavorare su questa roba Web pochi giorni fa mentre la mia azienda stava prendendo iniziative Web.

Ho un progetto ASP.Net e voglio ospitarlo su IIS locale. Nelle Project properties -> Webimpostazioni ho scelto Use Local IIS Servere fornito un URL come localhost/MyApp. Ho provato ad accedervi sul mio browser Firefox e ho ricevuto l'errore comeHTTP Error 503. The service is unavailable.

In precedenza ho ricevuto molti altri errori e uno per uno li ho riparati tutti. Ma colpito con questo. Queste sono le impostazioni che ho nel mio progetto

  1. Pool di applicazioni impostato su ASP.Net v4.0 Classic
  2. La Enable 32 bit Applicationproprietà del pool di app è vera
  3. Il pool di app è avviato
  4. Proprietà di compilazione progetto impostata su Any CPUper Framework di destinazione

Ma vorrei menzionare un comportamento strano. Di seguito è qualcosa che sto affrontando

  1. Il pool di applicazioni è avviato
  2. Provo ad accedere al mio sito Web locale (dando url come localhost/MyApp)
  3. Ricevo l'errore come HTTP Error 503. The service is unavailable
  4. Il pool di applicazioni è stato arrestato

Ho visto il seguente link e l'ho già provato. Per il comportamento sopra ho raggiunto qui . Secondo questo link, il nome del computer non dovrebbe contenere .al suo interno. Non ne ho nessuno .nel nome del mio computer ma ce l'ho -. Anche il mio nome di dominio contiene .al suo interno. Inoltre non posso modificare queste impostazioni in quanto è il mio laptop da ufficio e le nostre impostazioni TFS sono legate ai nostri nomi di dominio e computer.

Qualcuno può aiutarmi a capire cosa sta succedendo? Per favore, guidami. Grazie.

modificare

Ho il seguente codice in Global.asax. Application_BeginRequestIl metodo è vuoto nello stesso file.

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

Aggiornare

Secondo i suggerimenti nel commento, sono in grado di eseguire il sito Web da Cassini.


Hai un codice nel tuo Global.asax che viene eseguito all'avvio dell'applicazione? Qualcosa che potrebbe rimanere bloccato in un ciclo? Hai abilitato Enable 32 bit Applicationma stai utilizzando DLL solo a 32 bit?
CodingIntrigue,

Cosa succede quando lo esegui in Cassini?
Simon Whitehead,

@RGraham: ho impostato la proprietà build del progetto su Any CPU. Quindi penso che le dll usate non dovrebbero essere un problema. Vedere la modifica per il codice Global.asax. Grazie
Sandy,

@SimonWhitehead: Non ho idea di cosa sia Cassini. L'ho scaricato ora da cassinidev.codeplex.com . Riesco a vedere alcune DLL ed exe nei file scaricati. Potresti aiutarmi per favore come usarlo? Nel frattempo proverò a leggere su questo problema da fonti Internet.
Sandy,

@SimonWhitehead: sono in grado di gestire il sito Web di Cassini.
Sandy,

Risposte:


315

Una possibile ragione per cui ciò potrebbe accadere è che il Pool di applicazioni in IIS è configurato per essere eseguito con un account personalizzato e questo account non esiste o è stata fornita una password errata o la password è stata modificata. Guarda le proprietà avanzate del pool di applicazioni in IIS per quale account utilizza.

Inoltre, il registro eventi potrebbe contenere ulteriori informazioni sul motivo per cui il pool di applicazioni si interrompe immediatamente alla prima richiesta.

inserisci qui la descrizione dell'immagine


38
Nel mio caso, questo era il problema. Avevo cambiato la mia password di Windows e il mio IIS locale per Windows 8.1 ha smesso di funzionare. Ho dovuto aggiornare ogni progetto in più punti. In IIS 8, ho dovuto aggiornare le credenziali nel pool di applicazioni facendo clic con il pulsante destro del mouse sul pool e facendo clic su "Impostazioni avanzate -> Modello di processo -> Identità". Ho quindi dovuto aggiornare il sito stesso andando su "Siti -> MySITE -> Impostazioni avanzate -> Credenziali percorso fisico"
teynon

4
Anche se l'account esiste e la password è corretta, potrebbe essere stata disabilitata; questo causerebbe gli stessi sintomi.
Wolfgang,

2
Sì, questa è la soluzione. La password del mio account viene cambiata molto spesso. E ho dimenticato di dare la nuova password in "Impostazioni avanzate"
mihkov

2
il controllo del registro eventi è la strada da percorrere, mi ha sempre aiutato in questi problemi, l'ultima volta che ho controllato il registro eventi e ho scoperto che non è riuscito a caricare rewrite.dll in IIS, sono andato a programmi e funzionalità nel pannello di controllo, riparò l'installazione e tutto tornò normale.
Amr Elgarhy,

3
Abbiamo avuto una recente modifica della password. Questa era la soluzione. Per gli altri, vedi screenshot qui: i.imgur.com/rp8bnGy.png
AskYous

43

Ok, ho un'altra soluzione per un caso specifico: se usi WINDOWS 10 e lo hai aggiornato di recente (con il pacchetto Anniversary Update) devi seguire i passaggi seguenti:

  1. Controlla Windows Event Viewer- premi Win + R e digita:, eventvwrquindi premi INVIO.
  2. Sul lato sinistro del Windows Event Viewerclic su Windows Logs-> Application.
  3. Ora è necessario trovare alcuni ERRORI per l'origine IIS-W3SVC-WPnella finestra centrale.
  4. Probabilmente vedrai un messaggio come:

Impossibile caricare la DLL del modulo >> percorso-DLL <<. I dati sono l'errore.

  1. Devi andare su Control Panel-> Program and Featurese in base a quale DLL non può essere caricata devi riparare un altro modulo:
    • per rewrite.dll- trova IIS URL Rewrite Module 2 e fai clic su Change->Repair
    • per aspnetcore.dll- trova Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... e fai clic su Change-> Repair.
  2. Riavvia il tuo computer.

Questa risposta mi ha aiutato a risolvere un problema simile. Errore "Servizio non disponibile" corretto rimuovendo Core 2.2 (la riparazione da sola non ha risolto). voto positivo.
Roberto,

2
La risposta accettata non ha aiutato. Questo ha fatto. Grazie!
Devil's Advocate,

1
ottima risposta, il registro mi mostra Impossibile caricare la DLL del modulo C: \ Windows \ System32 \ inetsrv \ compdyn.dll. I dati sono l'errore. quindi installo Dynamic Content Compression
Mehdi Daustany il

Per me lo era: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.Quindi ho installato Seleziona Server Side Includes per questo suggerimento
David Refoua

14

Per la mia situazione è che la mia password di accesso è cambiata, mentre il pool di applicazioni utilizza ancora quella precedente. Quindi, fai clic su "Impostazioni avanzate" del pool di applicazioni e reimposta la tua "Identità".


Concordo sul fatto che ciò accada abbastanza spesso
Sandy,

11

Stavo affrontando lo stesso problema e ho eseguito il debug utilizzando i registri degli eventi. In primo luogo ha dichiarato che: "Impossibile trovare la descrizione dell'ID evento 5059 dall'origine Microsoft-Windows-WAS".

Ho quindi attivato WAS utilizzando le funzioni di attivazione / disattivazione di Windows . Poi ho visto questo in eventvwr "Impossibile trovare Microsoft-Windows-DistributedCOM".

Alla fine ho rinunciato ed eliminato l'App Pool (che in passato si fermava all'accesso al sito Web) e l'ho creato di nuovo, così com'è. Questo ha risolto il problema.


E se ti capita di avere un sacco di siti che fanno riferimento allo stesso pool di app, puoi utilizzare appcmd per aggiornarli in batch : appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus,

Ha funzionato anche per me. Aggiornando dal 2008 al 2012, i pool di app non erano del tutto felici.
Anthony Horne,

6

Per chiunque venga qui con Windows 10 e dopo averlo aggiornato all'aggiornamento Anniversary, controlla questo link, mi ha aiutato:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

Nel caso in cui il collegamento si interrompa: se il registro eventi mostra che aspnetcore.dll, rewrite.dll (il più delle volte, ma potrebbe essere anche altri) non è stato caricato, è necessario riparare gli elementi mancanti.

Ecco due problemi specifici che abbiamo riscontrato finora e come risolverli, ma potresti trovarne di completamente diversi:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".

6

Il più delle volte, si è verificato a causa delle impostazioni AppPool.

Verificare quanto segue per risolvere questo problema

  1. Verifica che il servizio Apppool sia in esecuzione.
  2. Verifica identità di AppPool.
  3. Immettere la nuova password se è stata modificata per tale identità.

Le immagini seguenti mostrano queste impostazioni in IIS

inserisci qui la descrizione dell'immagine


5

Se si dispone di McAfee HIPS e se viene visualizzato il seguente errore nel registro dell'applicazione del Visualizzatore eventi:

Impossibile caricare la DLL del modulo C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll.
I dati sono l'errore.

Quindi nel mio caso il seguente ha risolto il problema: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Citazione dalla pagina:

  1. Fare clic su Start, Esegui, digitare explorer e fare clic su OK.
  2. Passare a:% windir% \ system32 \ inetsrv \ config
  3. Aprire il file applicationHost.config come amministratore per la modifica in Blocco note.
  4. Modifica la sezione <globalModules> e rimuovi la seguente riga:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Modifica la sezione <moduli> e rimuovi la seguente riga:
    <add name = "MfeEngine" />

  6. Dopo aver completato la modifica del file applicationHost.config, salvare il file, quindi riavviare il server IIS utilizzando iisreset o riavviando il sistema.

5

Nel mio caso ho controllato i log degli eventi e ho riscontrato che l'errore non è stato in grado di leggere il file di configurazione 'tentando di leggere i dati di configurazione dal file' \\? \ ', Numero di riga' 0 '. Il campo dati contiene il codice di errore.

Il codice di errore era 2307.

Ho eliminato tutti i file in C: \ inetpub \ temp \ appPools e riavviato IIS. Risolto il problema.


4

Ho avuto un problema simile. L'ho risolto aggiungendo il mio utente al criterio "Accedi come processo batch" in "Criteri di sicurezza locali"> "Criteri locali"> "Assegnazione diritti utente".


4

La prima volta che aggiungo il servizio e ho creato l'app pool per esso. Ho fatto "iisreset" dal prompt dei comandi, e ha funzionato.


3

Se è possibile eseguire il sito Web nel debugger di Visual Studio, è possibile che il pool dell'applicazione si blocchi in modo anomalo nel codice. Nel mio caso, era una funzione chiamata ricorsivamente un numero illimitato di volte e che causava un overflow dello stack. Nota: il registro eventi di Windows e i registri IIS non sono stati utili per diagnosticare il problema.


3

Ho avuto lo stesso problema con iis 8.5. Dopo aver cercato eventViewer in Registri di Windows -> applicazioni, mi sono reso conto di avere un errore di autorizzazione per il file machine.config del framework .net situato in "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config". Dandogli un'autorizzazione per IIS_IUSRS ha risolto il mio problema (fare clic con il tasto destro sul file -> proprietà -> sicurezza -> modifica -> aggiungi -> IIS_IUSRS)


3

Stavo riscontrando questo errore e nel mio caso la causa era che qualche tempo fa ho modificato la password dell'utente e l'errore 503 non è stato visualizzato fino al riavvio del pool di applicazioni.

Quindi l'ho risolto impostando la nuova password in Pool di applicazioni / Impostazioni avanzate / Identità / [...] / Imposta ... / Password / Conferma password


2

Ho avuto un problema simile, tutti i miei pool di app si interrompevano ogni volta che veniva effettuata una richiesta Web. Anche se ho visualizzato il seguente errore nel Visualizzatore eventi:

Il processo di lavoro per il pool di applicazioni 'appPoolName' ha riscontrato un errore 'Il file di configurazione non è XML ben formato' nel tentativo di leggere i dati di configurazione dal file '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', riga numero 3'. Il campo dati contiene il codice di errore.

Il che mi ha detto che c'erano errori nell'applicazione.config su:

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

Nel mio scenario, ho modificato web.config su deploy con un elemento che IIS non piace chiaramente, applicationHost.config ha cancellato web.config e inserito questo elemento non valido e non si sarebbe risolto fino a quando non l'avessi rimosso manualmente


"un elemento IIS non piace chiaramente" qual è l'elemento specifico che hai citato ??
Akhil,

Ho pubblicato questo post oltre 4 anni fa. Non sono sicuro di quale sia l'elemento nel web.config, ma non è questo il punto. Il problema del pool di app descritto dall'OP mi stava accadendo e stavo ricevendo questi messaggi di errore inutili. La causa di cui sopra era che avevo inserito una voce errata nel web.config del mio sito. (forse con un errore di ortografia o errore di sintassi o sezione che IIS non ha riconosciuto come valido)
ShaneC

2

Oltre ai passaggi indicati a questo link dalla risposta di Orhan , potrebbe essere necessario rimuovere ulteriormente il modulo nativo andando su Gestione IIS> Root del server> Moduli> Configura moduli nativi. Seleziona MfeEngine e quindi seleziona Rimuovi.


2

Cambiare "Managed Pipeline Mode" da "Classic" a "Integrated" ha funzionato per me. Può essere modificato in Pool di applicazioni -> Impostazioni di base


Questo risolto il mio problema che si presentava dopo aver applicato il seguente Windows KB al nostro Windows Server 2008 R2 con IIS 7.5. ### 2019-07 Rollup di sicurezza e qualità per .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 per Windows 7 e Server 2008 R2 per x64 (KB4507420) Ulteriori informazioni: support.microsoft.com/kb/4507420 ###
phanf

1

Giusto per aggiungere a questi Anniversary Updateproblemi (grazie Microsoft) se il file che si sta perdendo è cgi.dll, vale a dire la vostra Event Viewerha

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

Quindi per risolvere questo problema:

  1. Vai a IIS Manager
  2. Seleziona la riga più in alto nel Connectionspannello (in genere il nome del tuo PC)
  3. In fondo al pannello di destra, sotto Management, dovresti avereWeb Platform Installer
  4. Una volta caricato, selezionare Products
  5. Nella ricerca digitare cgi quindi premere<Enter>
  6. Seleziona IIS: CGIquindi fai clic Addsu a destra e infine Installin basso
  7. Dopo l'installazione dovrebbe forzare il riavvio del PC e si dovrebbe essere riparati.

1
Il mio era "Url Rewrite" che ho disinstallato e quindi reinstallato. Perché ho riscontrato questo errore: "Impossibile caricare la DLL del modulo C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll. I dati sono l'errore."
Gwasshoppa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.