WCF บน IIS8 การแมปตัวจัดการ * .svc ไม่ทำงาน


272

ฉันพยายามรับบริการ wcf ที่ทำงานใน IIS8 บน 2012 build 8400

เมื่อติดตั้งบทบาทเว็บสิ่ง wcf (ต่ำกว่า 3.51) จะไม่พบเหมือนในปี 2008

เมื่อติดตั้งการแมป svc handler ขาดหายไปดังนั้นฉันจึง:

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

ขณะนี้มีการจัดการการแมป แต่ฉันยังคงได้รับ

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

(ฉันลบตัวจัดการไฟล์สแตติกออก)

ไซต์ใช้คลาสสิกไพพ์ไลน์เพื่อใช้การเลียนแบบ

คำตอบ:


553

โดยเฉพาะอย่างยิ่ง:

  1. เรียกใช้Server Manager(บนแถบงานและเมนูเริ่ม)
  2. เลือกเซิร์ฟเวอร์ที่จะจัดการ (เซิร์ฟเวอร์ภายในเครื่องอาจจะ)
  3. เลื่อนลงไปที่Roles and Featuresส่วน ""
  4. เลือก " Add Role or Feature" จากดร็อปดาวน์ Tasks
  5. ในAdd Role or Feature Wizardกล่องโต้ตอบ "" ให้คลิกลงไปที่ " Features" ในรายการหน้าทางซ้าย
  6. ขยาย".Net 3.5"หรือ".Net 4.5"ขึ้นอยู่กับสิ่งที่คุณติดตั้ง (คุณสามารถกลับไปที่rolesหน้าจอเพื่อเพิ่มหากคุณไม่มี" "
  7. ใต้ " WCF Services" ให้ทำเครื่องหมายในช่องสำหรับ " HTTP-Activation" นอกจากนี้คุณยังสามารถเพิ่มประเภทที่ไม่ใช่ http ได้หากคุณต้องการ
  8. คลิก"Install"ปุ่ม

6
อันนี้ใช้งานไม่ได้ในกรณีของฉันเพราะฉันใช้ Windows 8 (กับ IIS 8)
Josh Mouch

9
หากคุณเรียกใช้ ServiceModelReg.exe –i เป็นครั้งแรกจากไดเรกทอรี v3.0 คุณต้องเรียกใช้ ServiceModelReg.exe –ua เพื่อยกเลิกการทำงานก่อนที่จะทำงานได้
Scott Anderson

14
จากบรรทัดคำสั่ง: dism / ออนไลน์ / เปิดใช้งานคุณสมบัติ / FeatureName: WCF-HTTP- การเปิดใช้งาน / ทั้งหมด
Richard

4
เกี่ยวกับgyorgybalassy.wordpress.com/2012/09/24/…คืออะไร? วิธีไหนดีกว่ากัน?
Kiquenet

9
ฉันกำลังจ้องไปที่หน้า "บทบาทของเซิร์ฟเวอร์" เป็นเวลาหนึ่งชั่วโมง ฉันไม่รู้ว่าคุณสามารถคลิก "ถัดไป" หรือคลิกที่ "คุณสมบัติ" ทางด้านซ้าย o_O +1
Dan Bechard

219

ฉันต้องเปิดใช้งานHTTP Activationใน.NET Framework 4.5 Advanced Services>WCF Services

เปิดใช้งานการเปิดใช้งาน HTTP


10
นี่คือสิ่งที่คุณต้องทำสำหรับ Windows 8 ที่ไม่มีผู้จัดการเซิร์ฟเวอร์
Simon_Weaver

2
นี่คือคำตอบเมื่อคุณโฮสต์บริการ WCF ใน Windows 8 และ Windows 8.1
vcRobe

การเปิดใช้งาน http ไม่ว่าคุณจะใช้ http / https หรือไม่ ดังนั้นจึงเป็นชื่อสรุปสำหรับทั้งสองหรือยังคงมีความแตกต่างที่จำเป็น?
โทมัส

2
ฉันประสบปัญหาคล้ายกันใน IIS 10 การเปิดใช้งาน Http ถูกปิดใช้งานตามค่าเริ่มต้น การเปิดใช้งานจะช่วยแก้ไขปัญหาได้ทันที ขอบคุณ!
dhruvpatel

4
ใช้งานได้กับ Windows 10, IIS 10
watbywbarif

45

เปิดใช้งานสิ่งต่อไปนี้บน 'เปิดหรือปิดคุณสมบัติ Windows'

a) .Net Framework 3.5 - การเปิดใช้งาน WCF HTTP และการเปิดใช้งานที่ไม่ใช่ Http

b) ทั้งหมดภายใต้บริการ WCF


1
ฉันต้องเปิด. Net Framework 3.5 - การเปิดใช้งาน HTTP WCF
daveywc

40

Windows 8 พร้อม IIS8

  • ตี Windows+X
  • เลือกPrograms and Features(รายการแรกในรายการ)
  • เลือกTurn Windows Features on or offทางด้านซ้าย
  • ขยายตัว .NET Framework 4.5 Advanced Services
  • ขยายตัว WCF Services
  • ทำให้สามารถ HTTP Activation

สคริปต์ powershell ใด ๆ สำหรับทำโปรแกรม?
Kiquenet

เรามีเซิร์ฟเวอร์เดียวดังนั้นฉันจึงไม่เคยเข้าสู่ Powershell ขั้นสูง
Simon_Weaver

28

ฉันชอบที่จะทำสิ่งนี้ผ่านสคริปต์ในปัจจุบัน

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
ขอบคุณdism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45ก็เพียงพอแล้วสำหรับฉัน ...
Shubh

นี่เป็นวิธีที่ดีที่สุดในการแก้ไขปัญหานี้บน Windows Server 2012R2 + รุ่นใหม่ อาจใช้ได้ในปี 2012 เช่นกัน แต่โชคดีที่ฉันไม่มีอีกต่อไปที่จะลองใช้
Paul Sturm

และใช้สคริปต์PowerShell ?
Kiquenet

@Kiquenet คำสั่งเหล่านี้จะทำงานใน powershell ทั้งหมด หากคุณพยายามคัดลอกคำสั่งของ Shubh โดยตรงคุณต้องเพิ่มตัวแบ่งบรรทัดหรือเซมิโคลอนหลังจากคำสั่งแรกก่อนคำสั่ง dism ที่สอง
kb4000

10

เราจัดการเพื่อแก้ไขข้อผิดพลาดภายใต้ Windows Server 2012 โดย:

  1. การลบออกจาก "Remove Roles and Wizard Wizard". NET Framework 4.5 Features / ASP.NET 4.5 และคุณสมบัติทั้งหมด
  2. การติดตั้งคุณสมบัติที่ลบออกใหม่

ดูเหมือนว่าลำดับของการติดตั้งเป็นสาเหตุ

ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง HTTP Activation ไว้ใน WCF Services


ฉันทำสิ่งนี้และดูเหมือนจะฆ่าเซิร์ฟเวอร์ของฉันแล้ว ฉันถอนการติดตั้งเพียง asp.net สิ่งภายใต้ iis แต่ตอนนี้เมื่อฉันระยะไกลในฉันได้รับหน้าจอสีดำและหน้าต่างพร้อมรับคำสั่งเช่นเซิร์ฟเวอร์เป็นเพียง "เซิร์ฟเวอร์หลัก" ตอนนี้ ... :(
MGOwen

@MGOwen เมื่อคุณลบฟีเจอร์บางส่วนของ. net 4.5 ดูเหมือนว่ามันจะเอา Server Graphical Shell ออกไปด้วยซึ่งสามารถเพิ่มได้อีกครั้งด้วยคำสั่งบางอย่าง
John

3

สำหรับเครื่องที่ใช้ Windows 8 ไม่มีแอปพลิเคชั่น "ตัวจัดการเซิร์ฟเวอร์" (อย่างน้อยฉันก็ไม่สามารถหาได้)

แม้ว่าฉันจะสามารถแก้ไขปัญหาได้ ฉันไม่แน่ใจว่าลำดับใดที่ฉันได้ดำเนินการดังต่อไปนี้ แต่ดูเหมือนว่าการดำเนินการต่อไปนี้จะช่วยได้บ้าง

  1. เปิดหรือปิด 'คุณสมบัติ Windows' a) .Net Framework 3.5 - การเปิดใช้งาน HTTP WCF และการเปิดใช้งานที่ไม่ใช่ Http b) ทั้งหมดภายใต้ WCF Services (ตามที่ระบุไว้ในคำตอบของคำถามนี้)

  2. ดำเนินการ "ServiceModelReg.exe –i" ในโฟลเดอร์ "% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \"

  3. ลงทะเบียน ASP.NET 2.0 ผ่านสองคำสั่ง (ในโฟลเดอร์ C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

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

  4. รีสตาร์ทพีซี ... ดูเหมือนว่าเป็นผลจากการกระทำ ## 3 และ 4 บางอย่างเกิดขึ้นในการกำหนดค่า ASP.NET ของฉัน

  5. ทำซ้ำการกระทำ # 2

  6. ติดตั้งสองตัวเลือกอื่น ๆ จาก "โปรแกรมและคุณสมบัติ": .Net Framework 4.5 Advanced Services ฉันตรวจสอบตัวเลือกย่อยทั้งสอง: บริการ ASP.NET 4.5 และ WCF

  7. รีสตาร์ทกลุ่มแอพ

การเรียงลำดับเป็นบ้า แต่มันช่วยฉันและอาจช่วยคนอื่นได้


คีย์บิตกำลังเปิดใช้งาน HTTP
Umar Farooq Khawaja


2

ลำดับการติดตั้งมีความสำคัญมากเมื่อกำหนดค่า IIS 8 บน Windows 8 หรือ Windows Server 2012

ฉันประสบปัญหามากมายในการกำหนดค่า IIS 8 แต่ในที่สุดลิงก์เหล่านี้ก็ช่วยฉันได้


2

การใช้ PowerShell คุณสามารถติดตั้งคุณสมบัติที่ต้องการด้วย:

Add-WindowsFeature 'NET-HTTP-Activation'

1

บน windows 10 (ไคลเอนต์) คุณสามารถใช้สคริปต์นี้ได้เช่นกัน

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

โปรดทราบว่านี่เป็นคำสั่งที่แตกต่างจากเซิร์ฟเวอร์ skus


0

มันเป็นคุณสมบัติการเปิดใช้งาน HTTP ของ. NET Framework คุณสมบัติการเปิดใช้งานกระบวนการ Windows ก็เป็นสิ่งจำเป็นเช่นกัน


0

นี่เป็นสิ่งที่โง่มากสำหรับฉัน เพิ่มที่นี่เพราะมันเป็นหนึ่งในกระทู้ยอดนิยมในประเด็น svc 404

ฉันมีในการตั้งค่าโครงการ '\ Web \ Project URL แล้ว:

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

และด้วยเหตุผลบางอย่างที่ไม่ทราบสาเหตุ (เมื่อทำอย่างนี้พันครั้ง) ก็ไม่ได้เห็นชื่อของไฟล์. svc ในตอนท้าย

DOH!

ฉันเพิ่งวางที่อยู่จากโปรแกรมทดสอบ WCF ของฉันและไม่ได้ตรวจสอบอย่างเพียงพอ สิ่งที่ทำในพื้นหลังคือสร้างแอปพลิเคชัน IIS ที่ที่อยู่. svc และฉันไม่ได้รับอะไรเลยจาก IIS ฉันไม่สามารถหาวิธีที่จะตีไฟล์. svc ไม่ได้

แก้ไขง่ายชัดเพียงลบแอปพลิเคชันใน IIS และเปลี่ยน URL โครงการ

หลังจากผ่านไปเกือบ 20 ปีคุณก็ยังสามารถทำผิดข้อผิดพลาดของเด็กนักเรียน / มือใหม่ได้ หวังว่านี่จะช่วยใครซักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.