Kesalahan HTTP 404.3 - Tidak Ditemukan "saat menjelajahi layanan wcf di Windows Server 2008 (64bit)

89

Saya mengembangkan aplikasi berdasarkan .Net Framework 3.5 sp1 dan di-host di windows server 2008 (64bit).

Saat menelusuri layanan wcf (.svc) secara lokal, semuanya baik-baik saja tetapi saat menjelajah dengan URL domain lengkap, terjadi kesalahan.

alamat lokalnya seperti ini: http: //localhost/MyService.svc

dan alamat domainnya seperti ini: http://MySite.ir/MyService.svc

ngomong-ngomong halaman (.aspx) dan file lainnya bekerja dengan benar baik di localhost dan dengan alamat domain.

Ide apa pun akan dihargai

Berikut detail kesalahannya:


Kesalahan HTTP 404.3 - Tidak Ditemukan

Halaman yang Anda minta tidak dapat disajikan karena konfigurasi ekstensi. Jika halaman tersebut adalah skrip, tambahkan penangan. Jika file harus diunduh, tambahkan peta MIME. Informasi Kesalahan Terperinci

Modul: StaticFileModule

Pemberitahuan: ExecuteRequestHandler

Penangan: StaticFile

Kode Kesalahan: 0x80070032

URL yang Diminta: http://MySite.ir:80/MyService.svc

Jalur Fisik: D: \ inetpub \ vhosts \ MySite.ir \ httpdocs \ MyService.svc

Metode Logon: Anonim

Anonim Pengguna Logon

Mori
sumber

Jawaban:

227

Harap pastikan Anda telah mengaktifkan komponen WCF dari sini .

Atau cara alternatif dan mudahnya adalah, buka panel kontrol -> Hidupkan atau matikan fitur Windows -> dan pastikan Anda telah mencentang semua opsi seperti yang disebutkan di tangkapan layar di bawah ini.

masukkan deskripsi gambar di sini

Anda mungkin perlu mengaktifkan setiap kotak dan menerimanya jika Anda mendapatkan kesalahan saat mengaktifkan semua fitur sekaligus

Nirav Mehta
sumber
37
.Net Framework 4.5 Layanan Lanjutan -> Periksa Layanan WCF dan -> Aktivasi HTTP melakukannya untuk saya!
devHead
3
Windows Server 2012 - hanya perlu aktivasi HTTP dan Port Sharing diperiksa.
dibs487
2
Saya akan menambahkan tanggapan ini untuk mengaktifkan kotak satu per satu. Semua pemeriksaan dalam waktu yang sama mungkin gagal. Itu terjadi di Windows Server 2012.
harveyt
2
jawaban ini harus di atas
markthewizard1234
3
Ini jawaban yang benar. Ini memecahkan masalah bagi saya dan saya tidak perlu menambahkan apa pun secara manual ke Pemetaan Penangan IIS.
Anthony
25

Oke, ini jawabannya:

Pergi ke Pemetaan Penangan | Tambahkan Manajer Penangan -> Dan kemudian tambahkan informasi di bawah ini

Jalur Permintaan: * .svc

Jenis: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Versi = 3.0.0.0, Budaya = netral, PublicKeyToken = b77a5c561934e089

Nama: Terintegrasi svc

Mori
sumber
3
Bagi siapa pun yang ingin menambahkan ini ke file web.config mereka, ini berfungsi untuk saya dalam proyek .NET 4.5: <add name = "svc-Integrated" path = " .svc" verb = " " type = "System.ServiceModel. Activation.HttpHandler, System.ServiceModel.Activation, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 "/>
Stefan Mohr
6
Bagi saya, menambahkan baris dari @StefanMohr ke Web.config tidak cukup berhasil. Namun, saya berubah path="*.svc"dan verb="*"dan bekerja hebat. Jadi, baris yang saya gunakan yang berfungsi adalah: <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>(ditambahkan pada konfigurasi / system.webServer / handlers).
Aron Boyette
11

Jika ada yang memiliki masalah ini di Windows Server 2012, jawaban Bill Moon di sini menyelesaikannya untuk saya:

"Untuk Windows Server 2012 ... Dari Server Manager, klik Add role and features, pilih server yang sesuai, lalu pilih Features. Di bawah .NET Framework 4.5 Features, Anda akan melihat Layanan WCF, dan di bawahnya, Anda akan temukan Aktivasi HTTP. "

Akan
sumber
1
Dalam aplikasi web apa pun yang ada, Anda juga harus melakukan hal berikut setelah menambahkan fitur Windows: - Mulai inetmgr - Buka "Pemetaan handler" - Periksa apakah pemetaan svc-ISAPI untuk ekstensi * .svc ada. Jika tidak, gunakan tindakan "Kembalikan Ke Orang Tua" untuk menyalinnya dari situs web induk. Perhatikan bahwa ini mengasumsikan bahwa pemetaan handler kustom dikonfigurasi di web.config untuk aplikasi, seperti yang biasanya terjadi di IIS7 +. Jika tidak, Anda akan kehilangan mereka saat menjalankan "Kembalikan Ke Orang Tua".
Berend Engelbrecht
8

Saya memiliki windows 10 di laptop saya dan menggunakan visual studio 2015 untuk pengembangan WCF. WCF berfungsi dengan baik di studio visual tetapi ketika dihosting di IIS saya mendapat kesalahan yang sama.

Saya memeriksa penangan IIS. ekstensi svc hilang. Jadi saya mencoba menambahkan handler baru di IIS seperti yang disarankan oleh Mori di jawaban pertama. Saya tidak menemukan jenis "System.ServiceModel.Activation.HttpHandler".

Jadi saya membuka "Aktifkan atau Nonaktifkan fitur windows" dan menginstal fitur seperti yang disorot di screen shot.

Ini berhasil untuk saya.

masukkan deskripsi gambar di sini

Anil
sumber
0

Jika Anda menggunakan .Net 4.x, PublicKeyToken adalah 31bf3856ad364e35.

Namun, mengikuti posting ini tentang menginstal Layanan WCF dengan benar di IIS, handler telah disiapkan untuk saya.

Thomas Hagström
sumber
0

Saya ingin menambahkan ini sebagai komentar pada jawaban tetapi tidak memiliki cukup perwakilan untuk itu. Saya mencoba menjalankan ServiceModelReg dan aspnet_regiis.exe dengan berbagai bendera dan menambahkan fitur Aktivasi HTTP tetapi masih tidak berhasil. Bahkan menggunakan UI pemetaan Handler di IIS tidak berhasil karena tidak dapat menemukan System.ServiceModel.Activation.HttpHandler. Apa yang akhirnya berhasil adalah menambahkan handler yang disebutkan Mori secara manual ke file web.config saya.

<system.webServer>
    <handlers>
      <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />

Proyek saya menjalankan .Net 3.5 dan IIS 7.5 pada Windows 7 dan IIS 7.0 pada Win Server 2008 R2.

Janspeed
sumber
0

Coba hapus centang aktivasi HTTP WCF dari jendela "Aktifkan atau nonaktifkan fitur Windows" ( Lihat di sini ) dan instal ulang dengan membuka

%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\

dan jalankan ServiceModelReg -i

Derviş Özçelik
sumber