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
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
sumber
path="*.svc"
danverb="*"
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).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. "
sumber
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.
sumber
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.
sumber
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.
sumber
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
sumber