विंडोज 8 पर IIS में WCF सेवाओं की सेवा नहीं कर सकते


199

जब मैं विंडोज 8 मशीन में IIS पर एक WCF सेवा की कोशिश करता हूं, तो मुझे अच्छी तरह से ज्ञात त्रुटि मिलती है

आपके द्वारा अनुरोधित पृष्ठ एक्सटेंशन कॉन्फ़िगरेशन के कारण नहीं परोसा जा सकता है। यदि पृष्ठ स्क्रिप्ट है, तो एक हैंडलर जोड़ें। यदि फ़ाइल डाउनलोड की जानी चाहिए, तो MIME मैप जोड़ें।

चारों ओर पुराना काम चलना था aspnet_regiis -iलेकिन लगता है कि यह कमांड विंडोज 8 पैदावार की प्रतिक्रिया में हटा दी गई है This option is not supported on this version of the operating system. (...)

आसपास क्या काम होगा?

(मैंने aspxपहले ही नियमित पेजों को सफलतापूर्वक सक्षम कर दिया है , इसलिए अधिकांश IIS कॉन्फिग स्वस्थ लगता है।)


aspnet_regiis -iपूर्व-विंडोज 8 उपयोगकर्ताओं के लिए कमांड के बारे में अधिक जानकारी के लिए, यह लिंक देखें: aspsnippets.com/Articles/…
डेविड

जवाबों:


405

कोई ब्रेनर नहीं हुआ; डब्ल्यूसीएफ सेवा को Programs and Features -> Turn Windows features on or offनियंत्रण कक्ष में उपयोग करके सक्षम किया जाना चाहिए । जाने .NET Framework Advanced Services -> WCF Servicesऔर mdsn पर इस ब्लॉग पोस्टHTTP Activation में वर्णित के रूप में सक्षम करें ।

कमांड प्रॉम्प्ट (व्यवस्थापक के रूप में) से, आप चला सकते हैं:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

यदि आपको कोई त्रुटि मिलती है तो नीचे का उपयोग करें

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

6
मैंने IIS मैनेजर की तलाश में समय बिताया। मुझे लगता है कि आईआईएस मैनेजर के पास .NET फ्रेमवर्क एडवांस्ड सर्विसेज के बारे में उपयोगकर्ता को निर्देश देने या बताने वाला होना चाहिए।
टोनी_ हेनरिक

कमांड प्रॉम्प्ट का उपयोग करके मुझे त्रुटि मिली "ऑपरेशन पूरा हो गया है लेकिन WCF-HTTP-HTTP- सक्रियण सुविधा सक्षम नहीं थी। एक आवश्यक मूल सुविधा सक्षम नहीं की जा सकती है। आप प्रत्येक माता-पिता की सुविधा को स्वचालित रूप से सक्षम करने के लिए / सक्षम-सुविधा / सभी विकल्प का उपयोग कर सकते हैं। निम्न सूची से। यदि अभिभावक सुविधा पहले से सक्षम है, तो आगे निदान के लिए लॉग फ़ाइल देखें। "। मैंने यह जानने के लिए GUI विधि का उपयोग किया कि मैं क्या चालू कर रहा था और उसने काम किया।
बेन एडम्स

5
मुझे बेन एंडरसन के रूप में समान "एक आवश्यक मूल सुविधा सक्षम नहीं की जा सकती" त्रुटि मिली, और त्रुटि संदेश ( /allतर्क को जोड़ते हुए ) में सुझाव देने की कोशिश की , जिसने तब ठीक काम किया DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45:।
ट्रॉय गिज्जी

1
आप सर, अद्भुत हैं। आप यह भी जोड़ सकते हैं (यह एक छोटा सा विवरण है) कि यह .Net फ्रेमवर्क संस्करण के आधार पर किया जा सकता है। जैसे.NET 3.5 Framework Advanced Services -> Windows Communication Foundation HTTP Activation
rion18

यह एक जीवन रक्षक है। इस समस्या का अधिकांश ऑनलाइन समाधान केवल आपके पास है। वेब सुविधाओं के तहत .net 3.5 फ्रेमवर्क। यह पर्याप्त नहीं है। आप यहां बताए गए कदम को भी उठा सकते हैं।
markaronky

95

विंडोज सर्वर 2012 के लिए, समाधान फॉस्टर के समान है (ऊपर देखें)। सर्वर मैनेजर से, पर क्लिक Add roles and featuresकरें, उपयुक्त सर्वर का चयन करें, फिर चुनें Features। के तहत .NET Framework 4.5 Features, आप देखेंगे WCF Services, और उसके तहत, आप पाएंगे HTTP Activation


इसके लिए शुक्रिया ! लेकिन कैसे .net 4 के बारे में? आपको लगता है कि इस सुविधाओं को सक्षम करना .Net v4.0 के लिए भी ऐसा ही करेगा?
अलादीन गलास

2
किसी भी मौजूदा वेब एप्लिकेशन में आपको विंडोज फीचर को जोड़ने के बाद भी करना होगा: - inetmgr शुरू करें - "हैंडलर मैपिंग" खोलें - चेक करें कि क्या एक्सटेंशन * के लिए svc-ISAPI मैपिंग मौजूद हैं। यदि नहीं, तो मूल वेबसाइट से उन्हें कॉपी करने के लिए "रिवर्ट टू पैरेंट" कार्रवाई का उपयोग करें। ध्यान दें कि यह मानता है कि आवेदन के लिए कस्टम हैंडलर मैपिंग को web.config में कॉन्फ़िगर किया गया है, जैसा कि आमतौर पर IIS7 + में होता है। यदि नहीं, तो आप "रिवर्ट टू पेरेंट" को निष्पादित करते समय खो देंगे।
बेरेंड एन्गेलब्रैच

13

कृपया IIS 8.0 पर निम्न दो चरण करें

नए MIME प्रकार और HttpHandler जोड़ें

  1. एक्सटेंशन: .svc, MIME प्रकार: एप्लिकेशन / ऑक्टेट-स्ट्रीम

  2. अनुरोध पथ: *। पीवीसी, प्रकार: System.ServiceModel.Activation.HttpHandler, नाम: svc- एकीकृत


मेरे बहुत पुराने विंडोज 7 इंस्टॉलेशन के लिए सर्वश्रेष्ठ समाधान जो सक्षम करने में विफल रहता है - .net 3.5 (Http & Non-Http एक्टिवेशन) और WAS। OS को पुनर्स्थापित करने के लिए बहुत नाजुक
user919426

यह इस पद्धति के बारे में जानने के लायक है, खासकर जब अपने खुद के हैंडलर बनाने और जोड़ने के लिए। हालाँकि, यदि आप 'चालू और बंद विंडोज़ सुविधाएँ' का उपयोग करते हैं, तो आपको अधिकांश ज्ञात फ़ाइल एक्सटेंशन मिलेंगे, जो आपको प्रत्येक व्यक्ति को व्यक्तिगत रूप से जोड़ने का समय बचाएंगे (और सभी सही विवरणों का पता
लगाते हुए


3

यह वास्तव में फॉस्टर के समाधान और बिल मून के रूप में एक ही समाधान है, लेकिन यहां आप इसे PowerShell के साथ कैसे करते हैं:

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

बेशक, आपको DISMPowerShell से कॉल करने से कुछ भी नहीं रोक रहा है।


बहुत अच्छा। जानकारी के लिए धन्यवाद।
रॉड हार्ट्जेल

-1

आप इस कोड को asp mvc में web.config में जोड़ सकते हैं

   <system.webServer>
    <staticContent>
      <remove fileExtension=".srt" />
      <mimeMap fileExtension=".srt" mimeType="text/srt" />
      <remove fileExtension=".vtt" />
      <mimeMap fileExtension=".vtt" mimeType="text/vtt" />
    </staticContent>
  </system.webServer>

आप अपनी फ़ाइल एक्सटेंशन के साथ फ़ाइल एक्सटेंशन बदल सकते हैं


हाय @malik - क्या आप स्पष्ट कर सकते हैं कि फ़ाइल एक्सटेंशन मैपिंग svc-endpoint कैसे काम कर सकती है?
फॉस्टर

अगर मैं सही ढंग से समझूं, तो आप अपने वांछित के साथ एक्सटेंशन बदल सकते हैं। आप feedforall.com/mime-types.htm से देख सकते हैं लेकिन आप एक और बात कहेंगे, क्षमा करें मैं समझ नहीं पा रहा हूं।
मलिक मास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.