HTTP Error 503. Layanan ini tidak tersedia. App pool berhenti saat mengakses situs web

167

Ada sejumlah posting tentang ini dan saya sudah mencoba banyak hal sekarang. Tetapi tidak berhasil. Saya seorang Pengembang Winforms pada dasarnya, mulai mengerjakan hal-hal Web ini beberapa hari yang lalu ketika perusahaan saya mengambil inisiatif Web.

Saya punya proyek ASP.Net dan saya ingin meng-host-nya di IIS lokal. Dalam Project properties -> Webpengaturan saya memilih Use Local IIS Serverdan memberikan url sebagai localhost/MyApp. Saya mencoba mengaksesnya di browser firefox saya dan menerima kesalahan sebagaiHTTP Error 503. The service is unavailable.

Sebelumnya saya mendapat banyak kesalahan lain dan saya satu persatu memperbaiki semuanya. Tetapi terpukul dengan yang satu ini. Ini adalah pengaturan yang saya miliki di proyek saya

  1. Kumpulan Aplikasi diatur ke ASP.Net v4.0 Classic
  2. Enable 32 bit ApplicationProperti App Pool benar
  3. App Pool dimulai
  4. Properti pembuatan proyek ditetapkan Any CPUuntuk kerangka kerja Target

Tapi saya ingin menyebutkan perilaku yang aneh. Mengikuti adalah sesuatu yang saya hadapi

  1. Pool Aplikasi Dimulai
  2. Saya mencoba mengakses situs web lokal saya (dengan memberikan url sebagai localhost/MyApp)
  3. Saya menerima kesalahan sebagai HTTP Error 503. The service is unavailable
  4. Pool Aplikasi Dihentikan

Saya telah melihat tautan berikut dan saya sudah mencobanya. Untuk perilaku di atas saya sampai di sini . Menurut tautan ini, nama komputer tidak boleh ada .di dalamnya. Saya tidak memiliki .nama komputer saya tetapi ada -di dalamnya. Juga nama domain saya berisi .di dalamnya. Selain itu, saya tidak dapat mengubah pengaturan ini karena laptop kantor saya dan pengaturan TFS kami terikat dengan Nama Domain dan Komputer kami.

Adakah yang bisa membantu saya untuk memahami apa yang terjadi? Mohon bimbingannya. Terima kasih.

Edit

Saya memiliki kode berikut di Global.asax. Application_BeginRequestMetode kosong di file yang sama.

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");
}

Memperbarui

Sesuai saran dalam Komentar, saya dapat menjalankan situs web dari Cassini.

Sandy
sumber
Apakah Anda memiliki kode di Global.asax Anda yang berjalan saat aplikasi dimulai? Adakah yang terjebak dalam satu lingkaran? Anda diaktifkan Enable 32 bit Applicationtetapi apakah Anda menggunakan DLL 32-bit saja?
CodingIntrigue
Apa yang terjadi ketika Anda menjalankannya di Cassini?
Simon Whitehead
@RGraham: Saya memiliki properti build proyek yang disetel ke Any CPU. Jadi saya pikir dll yang digunakan seharusnya tidak menjadi masalah. Silakan lihat hasil edit untuk kode Global.asax. Terima kasih
Sandy
@SimonWhitehead: Tidak tahu apa itu Cassini. Saya mengunduhnya sekarang dari cassinidev.codeplex.com . Saya dapat melihat beberapa dll dan exe dalam file yang diunduh. Bisakah Anda membantu saya cara menggunakannya? Sementara itu saya akan mencoba membaca tentang masalah ini dari sumber internet.
Sandy
@SimonWhitehead: Saya dapat menjalankan situs web dari Cassini.
Sandy

Jawaban:

315

Salah satu alasan yang mungkin terjadi adalah bahwa Application Pool di IIS dikonfigurasi untuk berjalan di bawah beberapa akun khusus dan akun ini tidak ada atau kata sandi yang salah telah disediakan, atau kata sandi telah diubah. Lihatlah properti lanjutan dari Application Pool di IIS yang akunnya digunakan.

Juga Log Kejadian mungkin berisi lebih banyak informasi tentang mengapa Application Pool dihentikan segera atas permintaan pertama.

masukkan deskripsi gambar di sini

Darin Dimitrov
sumber
38
Dalam kasus saya, ini masalahnya. Saya telah mengubah kata sandi Windows saya dan IIS lokal saya untuk Windows 8.1 berhenti bekerja. Saya harus memperbarui setiap proyek di banyak tempat. Di IIS 8, saya harus memperbarui kredensial di kumpulan aplikasi dengan mengklik kanan kumpulan tersebut dan mengklik "Pengaturan lanjutan -> Model Proses -> Identitas". Saya kemudian harus memperbarui Situs itu sendiri dengan pergi ke "Situs -> MySITE -> Pengaturan Lanjut -> Kredensial Jalur Fisik"
teynon
4
Bahkan jika akun itu ada dan kata sandinya benar, itu mungkin telah dinonaktifkan; ini akan menyebabkan gejala yang sama.
Wolfgang
2
Ya, itu solusinya. Kata sandi akun saya sering diubah. Dan saya lupa untuk memberikan kata sandi baru di "Pengaturan lanjutan"
mihkov
2
memeriksa Event Log adalah cara untuk pergi, selalu membantu saya dalam masalah ini, terakhir kali saya memeriksa event log dan saya menemukan bahwa itu gagal dalam memuat rewrite.dll di iis, saya pergi ke program dan fitur di panel kontrol, memperbaiki instalasi, dan semuanya kembali normal.
Amr Elgarhy
3
Kami memiliki perubahan kata sandi baru-baru ini. Ini solusinya. Untuk yang lain, lihat tangkapan layar di sini: i.imgur.com/rp8bnGy.png
AskYous
43

Oke, saya punya solusi lain untuk satu kasus spesifik: jika Anda menggunakan WINDOWS 10, dan Anda memperbaruinya baru-baru ini (dengan paket Anniversary Update) Anda perlu mengikuti langkah-langkah di bawah ini:

  1. Periksa Windows Event Viewer- tekan Win + R dan ketik eventvwr:, lalu tekan ENTER.
  2. Di sebelah kiri Windows Event Viewerklik pada Windows Logs-> Application.
  3. Sekarang Anda perlu menemukan beberapa KESALAHAN untuk sumber IIS-W3SVC-WPdi jendela tengah.
  4. Mungkin Anda akan melihat pesan seperti:

Module DLL >> path-to-DLL << gagal dimuat. Data adalah kesalahan.

  1. Anda harus pergi ke Control Panel -> Program and Featuresdan tergantung pada dll yang tidak dapat dimuat, Anda perlu memperbaiki modul lain:
    • untuk rewrite.dll- temukan IIS URL, tulis kembali Modul 2 dan klik Change->Repair
    • untuk aspnetcore.dll- temukan Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... dan klikChange -> Repair.
  2. Hidupkan Kembali komputer Anda.
1_bug
sumber
Jawaban ini membantu saya memecahkan masalah yang sama. Kesalahan "Layanan Tidak Tersedia" diperbaiki dengan menghapus Core 2.2 (perbaikan saja tidak memperbaiki). suara.
Roberto
2
Jawaban yang diterima tidak membantu. Ini benar. Terima kasih!
Pengacara Setan
1
jawaban bagus, log tunjukkan padaku Modul DLL C: \ Windows \ System32 \ inetsrv \ compdyn.dll gagal dimuat. Data adalah kesalahan. jadi saya menginstal Dynamic Content Compression
Mehdi Daustany
Bagi saya, itu adalah: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.Jadi saya menginstal Select Server Side Termasuk per saran ini
David Refoua
14

Untuk situasi saya adalah kata sandi login saya berubah, sedangkan kumpulan aplikasi masih menggunakan yang lama. Jadi cukup klik "Pengaturan Lanjut" dari kumpulan aplikasi Anda dan setel ulang "Identitas" Anda.

David
sumber
Saya setuju bahwa ini cukup sering terjadi
Sandy
11

Saya menghadapi masalah yang sama, dan men-debug-nya menggunakan log peristiwa. Pertama dikatakan bahwa: "Deskripsi untuk Event ID 5059 dari sumber Microsoft-Windows-WAS tidak dapat ditemukan".

Saya kemudian menyalakan WS menggunakan fitur turn windows on / off . Kemudian saya melihat ini di eventvwr "Microsoft-Windows-DistributedCOM tidak dapat ditemukan".

Akhirnya saya menyerah dan menghapus App Pool (yang digunakan untuk berhenti mengakses situs web) dan membuatnya lagi, apa adanya. Ini menyelesaikan masalah.

Tarun
sumber
Dan jika Anda memiliki banyak situs yang mereferensikan kumpulan aplikasi yang sama, Anda dapat menggunakan appcmd untuk memperbaruinya secara batch : appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus
Bekerja untuk saya juga. Dengan memutakhirkan dari 2008 hingga 2012, kumpulan aplikasi tidak sepenuhnya bahagia.
Anthony Horne
6

Bagi siapa pun yang datang ke sini dengan Windows 10 dan setelah memperbarui mereka ke pembaruan Anniversary, silakan periksa tautan ini, itu membantu saya:

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

Dalam kasus tautan turun: Jika log Acara Anda menunjukkan bahwa aspnetcore.dll, rewrite.dll (paling sering, tetapi bisa juga orang lain) gagal dimuat, Anda harus memperbaiki item yang hilang.

Berikut adalah dua masalah khusus yang kami alami sejauh ini dan bagaimana cara memperbaikinya, tetapi Anda dapat menabrak yang sangat berbeda:

"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 ...".
Zoran P.
sumber
6

Sebagian besar waktu, itu terjadi karena Pengaturan AppPool.

Periksa hal berikut untuk menyelesaikan ini

  1. Periksa layanan Apppool sedang berjalan.
  2. Periksa Identitas AppPool.
  3. Masukkan kata sandi baru jika sudah berubah untuk identitas itu.

Gambar berikut menunjukkan pengaturan ini di IIS

masukkan deskripsi gambar di sini

Hassan Nazeer
sumber
5

Jika Anda memiliki McAfee HIPS dan jika Anda melihat kesalahan berikut dalam log aplikasi penampil acara:

Modul DLL C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll gagal dimuat.
Data adalah kesalahan.

Kemudian hal berikut ini menyelesaikan masalah dalam kasus saya: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Kutipan dari halaman:

  1. Klik Mulai, Jalankan, ketik explorer dan klik OK.
  2. Arahkan ke:% windir% \ system32 \ inetsrv \ config
  3. Buka file applicationHost.config sebagai Administrator untuk mengedit di Notepad.
  4. Edit bagian <globalModules> dan hapus baris berikut:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Edit bagian <modules> dan hapus baris berikut:
    <add name = "MfeEngine" />

  6. Setelah Anda selesai mengedit file applicationHost.config, simpan file tersebut, kemudian restart server IIS menggunakan iisreset atau dengan me-restart sistem.
Orhan Celik
sumber
5

Dalam kasus saya, saya memeriksa log peristiwa dan menemukan kesalahan adalah Tidak dapat membaca file konfigurasi 'mencoba membaca data konfigurasi dari file' \\? \ ', Nomor baris' 0 '. Bidang data berisi kode kesalahan.

Kode kesalahan adalah 2307.

Saya menghapus semua file di C: \ inetpub \ temp \ appPools dan memulai kembali iis. Itu memperbaiki masalah.

Abhishek Agrawal
sumber
4

Saya punya masalah serupa. Saya menyelesaikannya dengan menambahkan pengguna saya ke kebijakan "Masuk sebagai pekerjaan sampingan" di bawah "Kebijakan Keamanan Lokal"> "Kebijakan Lokal"> "Penugasan Hak Pengguna".

thd
sumber
4

Ketika saya pertama kali menambahkan layanan dan membuat kumpulan aplikasi untuk itu. Saya melakukan "iisreset" dari command prompt, dan itu berhasil.

Swapnil Kale
sumber
3

Jika Anda dapat menjalankan situs web di Visual Studio debugger, maka mungkin dapat melihat di mana dalam kode Anda kumpulan aplikasi mogok. Dalam kasus saya, itu adalah fungsi yang dipanggil secara berulang dalam jumlah tidak terbatas, dan itu menyebabkan stack overflow. Catatan: log peristiwa Windows dan log IIS tidak membantu untuk mendiagnosis masalah.

humbad
sumber
3

Saya memiliki masalah yang sama dengan iis 8.5. Setelah mencari eventViewer di bawah jendela Log -> aplikasi, saya menyadari bahwa saya mengalami kesalahan izin untuk file machine.config dari kerangka kerja .net yang terletak di "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config ". Memberinya izin untuk IIS_IUSRS menyelesaikan masalah saya (klik kanan file -> properties -> security -> edit -> add -> IIS_IUSRS)

Dror T
sumber
3

Saya mengalami kesalahan ini dan dalam kasus saya penyebabnya adalah beberapa waktu yang lalu saya memodifikasi kata sandi pengguna, dan kesalahan 503 tidak muncul sampai saya memulai kembali kumpulan aplikasi.

Jadi saya memperbaikinya mengatur kata sandi baru pada Aplikasi Pools / Pengaturan Lanjut / Identitas / [...] / Set ... / Kata Sandi / Konfirmasi Kata Sandi

Miquel
sumber
2

Saya memiliki masalah serupa, semua kumpulan aplikasi saya berhenti setiap kali permintaan web diajukan kepada mereka. Meskipun saya mendapatkan kesalahan berikut di Peraga Peristiwa:

Proses pekerja untuk kumpulan aplikasi 'appPoolName' mengalami kesalahan 'File konfigurasi tidak terbentuk dengan baik XML' mencoba membaca data konfigurasi dari file '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', baris nomor 3'. Bidang data berisi kode kesalahan.

Yang memberi tahu saya bahwa ada kesalahan dalam application.config di:

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

Dalam skenario saya, saya mengedit web.config pada penyebaran dengan elemen IIS jelas tidak suka, applicationHost.config memo web.config dan memasukkan elemen buruk ini dan tidak akan menyelesaikan sampai saya menghapusnya secara manual

ShaneC
sumber
"elemen IIS jelas tidak suka" apa elemen spesifik yang telah Anda sebutkan ??
Akhil
Saya membuat posting ini lebih dari 4 tahun yang lalu. Saya tidak yakin elemen apa yang ada di web.config tapi bukan itu intinya. Masalah kumpulan aplikasi yang dijelaskan OP sedang terjadi pada saya dan saya mendapatkan kembali pesan kesalahan yang tidak membantu ini. Penyebab di atas adalah bahwa saya telah memasukkan entri yang salah ke web.config situs saya. (mungkin dengan kesalahan pengejaan atau kesalahan sintaksis atau bagian yang tidak diakui IIS valid)
ShaneC
2

Selain langkah-langkah yang diuraikan di tautan ini dari jawaban Orhan , Anda mungkin perlu menghapus modul asli dengan masuk ke IIS Manager> Server Root> Modules> Configure Native Modules. Pilih MfeEngine dan kemudian pilih Hapus.

dantheman
sumber
2

Mengubah "Mode Pipa Terkelola" dari "Klasik" ke "Terintegrasi" bekerja untuk saya. Itu dapat diubah di Application Pools -> Basic Settings

MartinS
sumber
Ini memperbaiki masalah saya yang muncul setelah menerapkan windows KB berikut ke server windows 2008 2008 kami menjalankan IIS 7.5. ### 2019-07 Rollup Keamanan dan Kualitas untuk .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 untuk Windows 7 dan Server 2008 R2 untuk x64 (KB4507420) Informasi lebih lanjut: support.microsoft.com/kb/4507420 ###
phanf
1

Hanya untuk menambah ini Anniversary Updatemasalah (terima kasih Microsoft) jika file Anda hilang adalah cgi.dll, yaitu Anda Event Viewermemiliki

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

Kemudian untuk memperbaikinya:

  1. Pergi ke IIS Manager
  2. Pilih baris paling atas di Connectionspanel (biasanya nama PC Anda)
  3. Di bagian paling bawah dari panel kanan, di bawah Management, Anda seharusnya memilikinyaWeb Platform Installer
  4. Setelah itu dimuat, pilih Products
  5. Di ketik pencarian cgikemudian tekan<Enter>
  6. Pilih IIS: CGIlalu klik Adddi kanan dan akhirnya Installdi bawah
  7. Setelah menginstal itu akan memaksa Anda untuk me-restart PC Anda dan Anda harus diperbaiki.
Serj Sagan
sumber
1
Milik saya adalah "Url Rewrite" yang saya hapus dan instal ulang. Karena saya mendapatkan kesalahan ini: "Modul DLL C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll gagal dimuat. Data adalah kesalahan."
Gwasshoppa