WCF pada IIS8; * .svc handler mapping tidak berfungsi

272

Saya mencoba untuk membuat layanan wcf berjalan di IIS8 pada 2012 build 8400.

Saat memasang peran web, item wcf (di bawah 3,51) tidak ditemukan seperti pada 2008.

Ketika menginstal pemetaan svc handler hilang, jadi saya melakukan:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

Sekarang pemetaan pawang ada di sana, tapi saya masih mendapatkan:

The resource you are looking for does not have a handler associated with it.

(Saya menghapus pengendali file statis.)

Situs ini menggunakan pipa klasik untuk menggunakan peniruan identitas.

Carl R
sumber

Jawaban:

553

Lebih spesifik:

  1. Jalankan Server Manager(di bilah tugas dan menu mulai)
  2. Pilih server untuk dikelola (mungkin server lokal)
  3. Gulir ke bawah ke Roles and Featuresbagian " ".
  4. Pilih " Add Role or Feature" dari drop-down Tasks
  5. Pada Add Role or Feature Wizarddialog " ", klik " Features" ke bawah pada daftar halaman di sebelah kiri.
  6. Perluas ".Net 3.5"atau ".Net 4.5", tergantung pada apa yang telah Anda instal. (Anda dapat kembali ke roleslayar " " untuk menambahkan jika Anda tidak punya.
  7. Di bawah " WCF Services", centang kotak untuk " HTTP-Activation". Anda juga dapat menambahkan jenis non-http jika Anda tahu Anda membutuhkannya (tcp, pipa bernama, dll).
  8. Klik "Install"Tombol.
Brian Jimdar
sumber
6
Yang ini tidak berfungsi dalam kasus saya karena saya menggunakan Windows 8 (dengan IIS 8).
Josh Mouch
9
Jika Anda pertama kali menjalankan ServiceModelReg.exe –i dari direktori v3.0, Anda juga harus menjalankan ServiceModelReg.exe –ua untuk membatalkannya sebelum ini berfungsi.
Scott Anderson
14
Dari baris perintah: dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All
Richard
4
Bagaimana dengan gyorgybalassy.wordpress.com/2012/09/24/… ? mana cara yang lebih baik?
Kiquenet
9
Saya benar-benar menatap halaman "Peran Server" selama satu jam. Saya tidak tahu Anda bisa mengklik "Berikutnya" atau klik ke "Fitur" di sebelah kiri. o_O +1
Dan Bechard
219

Aku harus mengaktifkan HTTP Activationdi .NET Framework 4.5 Advanced Services>WCF Services

Aktifkan Aktivasi HTTP

Joshcomley
sumber
10
inilah yang perlu Anda lakukan untuk Windows 8 di mana tidak ada manajer server
Simon_Weaver
2
Ini adalah jawabannya ketika Anda meng-hosting Layanan WCF di Windows 8 dan Windows 8.1
vcRobe
Aktivasi http. Apakah itu terlepas dari apakah Anda menggunakan http / https? Jadi apakah itu nama ringkasan untuk keduanya atau apakah masih ada perbedaan yang diperlukan di sana?
Thomas
2
Saya menghadapi masalah serupa pada IIS 10, Aktivasi Http dimatikan secara default. Mengaktifkannya segera menyelesaikan masalah. Terima kasih!
dhruvpatel
4
Bekerja untuk Windows 10, IIS 10
watbywbarif
45

nyalakan yang berikut ini pada 'Menghidupkan atau mematikan Fitur Windows'

a) .Net Framework 3.5 - Aktivasi HTTP WCF dan Aktivasi Non-Http

b) semua dalam Layanan WCF

Dino
sumber
1
Saya hanya perlu mengaktifkan .Net Framework 3.5 - Aktivasi HTTP WCF
daveywc
40

Windows 8 dengan IIS8

  • Memukul Windows+X
  • Pilih Programs and Features(item pertama pada daftar)
  • Pilih Turn Windows Features on or offdi sebelah kiri
  • Memperluas .NET Framework 4.5 Advanced Services
  • Memperluas WCF Services
  • Memungkinkan HTTP Activation
Simon_Weaver
sumber
ada skrip PowerShell untuk melakukannya secara terprogram?
Kiquenet
kami memiliki satu server jadi saya tidak pernah masuk ke Powershell canggih
Simon_Weaver
28

Saya lebih suka melakukan ini melalui skrip saat ini

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause
Jon
sumber
2
Terima kasih dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45sudah cukup untuk saya ...
Shubh
Ini adalah cara terbaik untuk memperbaikinya pada Windows Server 2012R2 + versi baru. Mungkin bekerja pada 2012 juga tapi untungnya, saya tidak punya lagi dari mereka untuk mencobanya.
Paul Sturm
dan menggunakan skrip PowerShell ?
Kiquenet
@Kiquenet Perintah-perintah ini semua akan bekerja di PowerShell. Jika Anda mencoba untuk menyalin perintah Shubh secara langsung, Anda perlu menambahkan jeda baris atau titik koma setelah perintah pertama sebelum perintah dism kedua.
kb4000
10

Kami berhasil memecahkan kesalahan di bawah Windows Server 2012 dengan:

  1. Menghapus dari "Hapus Peran dan Fitur Wizard" .NET Framework 4.5 Features / ASP.NET 4.5 dan semua fitur yang tergantung
  2. Instal ulang fitur yang dihapus.

Sepertinya urutan pemasangan adalah penyebabnya.

Juga, pastikan Anda memiliki Aktivasi HTTP yang diinstal di bawah Layanan WCF.

Damian Radu
sumber
Saya melakukan ini dan tampaknya telah membunuh server saya. Saya hanya menghapus instalan hal-hal asp.net di bawah iis, tetapi sekarang ketika saya jauh saya mendapatkan layar hitam dan jendela prompt perintah, seperti server hanya "server inti" sekarang ... :(
MGOwen
@ MOGOwen ketika Anda menghapus beberapa fitur .net 4.5 sepertinya ia juga menghapus Server Graphical Shell, ini dapat ditambahkan lagi dengan beberapa perintah.
John
3

Untuk mesin Windows 8 tidak ada aplikasi "Server Manager" (setidaknya saya tidak dapat menemukannya).

Padahal saya bisa menyelesaikan masalah . Saya tidak yakin urutan mana yang saya lakukan operasi berikut tetapi sepertinya satu / beberapa tindakan berikut membantu:

  1. Aktifkan yang berikut ini pada 'Hidupkan atau Matikan Fitur' a) .Net Framework 3.5 - Aktivasi HTTP WCF dan Aktivasi Non-Http b) semua dalam Layanan WCF (sebagaimana ditentukan dalam salah satu jawaban untuk pertanyaan ini)

  2. dieksekusi "ServiceModelReg.exe –i" di "% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Foundation Foundation \" folder

  3. Terdaftar ASP.NET 2.0 melalui dua perintah (dalam folder C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY \ SERVICE NETWORK" aspnet_regiis -iru

  4. Restart PC ... sepertinya akibat tindakan ## 3 dan 4 ada sesuatu yang rusak dalam konfigurasi ASP.NET saya

  5. Ulangi tindakan # 2

  6. Instal dua opsi lain dari "Program dan Fitur": .Net Framework 4.5 Layanan Lanjutan. Saya memeriksa kedua pilihan sub: ASP.NET 4.5 dan layanan WCF

  7. Mulai Ulang App Pool.

Urutannya agak gila, tapi itu membantu saya dan mungkin akan membantu orang lain

Budda
sumber
Bit kuncinya adalah mengaktifkan Aktivasi HTTP.
Umar Farooq Khawaja
Bagaimana dengan gyorgybalassy.wordpress.com/2012/09/24/… ?
Kiquenet
2

Urutan pemasangan sangat penting ketika mengkonfigurasi IIS 8 pada Windows 8 atau Windows Server 2012.

Saya menghadapi banyak masalah dalam mengkonfigurasi IIS 8 tetapi akhirnya tautan ini membantu saya

Sunil Agarwal
sumber
2

menggunakan PowerShell Anda dapat menginstal fitur yang diperlukan dengan:

Add-WindowsFeature 'NET-HTTP-Activation'
Owais F
sumber
1

Di windows 10 (klien) Anda juga dapat menggunakan script ini

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Perhatikan bahwa ini adalah perintah yang berbeda dari server skus

aL3891
sumber
0

Ini fitur Aktivasi HTTP dari .NET framework Fitur Aktivasi Proses Windows juga diperlukan

Maks
sumber
0

Ini benar-benar konyol bagi saya. Menambahkan ini di sini sebagai salah satu utas yang lebih populer tentang masalah svc 404.

Saya sudah di URL Pengaturan Proyek '\ Web \ Project saya, tempel:

http://blah.webservice.local.blahblah.com/Blah.svc

Dan untuk beberapa alasan yang tidak diketahui (setelah melakukan ini ribuan kali) tidak langsung mengetahui bahwa nama file .svc pada akhirnya.

DOH!

Saya baru saja menempelkan alamat dari klien uji WCF saya dan belum memeriksanya dengan cukup. Apa yang dilakukan di latar belakang ini adalah membuat aplikasi IIS di alamat .svc dan saya tidak mendapatkan apa-apa dari IIS. Saya tidak bisa mengetahui bagaimana saya bahkan tidak bisa menekan file .svc.

Perbaikan sederhana, jelas, cukup hapus aplikasi di IIS dan ubah URL proyek.

Setelah hampir 20 tahun melakukan hal ini, Anda masih bisa membuat kesalahan anak sekolah / pemula. Semoga ini bisa membantu seseorang.

Stunt Double Moby
sumber