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.

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.

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


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


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

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

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.


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


Bit kuncinya adalah mengaktifkan Aktivasi HTTP.
Umar Farooq Khawaja



2

menggunakan PowerShell Anda dapat menginstal fitur yang diperlukan dengan:

Add-WindowsFeature 'NET-HTTP-Activation'

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


0

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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.