HTTP 404 जब पहुँचने .svc फ़ाइल IIS में


86

मैंने हाल ही में एक WCF सेवा बनाई है जो Visual Studio 2008 से परीक्षण करने पर ठीक काम करती है। लेकिन जब मैं IIS से प्रोजेक्ट को परिनियोजित करता हूं और IIS से .svc फ़ाइल तक पहुँचने के लिए, मुझे यह त्रुटि मिलती है:

"Server Error in '/' Application.The resource cannot be found.  "

मैं पिछले 4 दिनों से इस मुद्दे को उठा रहा हूं।

IIS प्रबंधक के हैंडलर मैपिंग में, मैं .svc के लिए दो प्रविष्टियाँ देख सकता हूँ:

svc-Integrated and svc-ISAPI-2.0

जवाबों:


75

आपको ASP.NET के लिए SVC एक्सटेंशन के लिए मैपिंग जोड़ने की आवश्यकता है। ऐसा करने का सबसे आसान तरीका ServiceModelReg.exe -iC: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows संचार फाउंडेशन से चलना है। यदि आपने पहले से ऐसा नहीं किया है, तो आपको ASP.NET को भी सक्षम करना पड़ सकता है।


यदि आप Windows Server 2012 या 2016 का उपयोग कर रहे हैं, तो इन निर्देशों का पालन करें:


क्या आपने बाद में IIS को पुनरारंभ करने का प्रयास किया?
tvanfosson

क्या अब आपके पास .svc के लिए माइम मैपिंग है?
tvanfosson

यह माइम मैपिंग नहीं है- एप्लीकेशन एक्सटेंशन मैपिंग। msdn.microsoft.com/en-us/library/ms752252(v=vs.90).aspx देखें ।
माइकल फ्रीजिम

22
महत्वपूर्ण: .NET 4.5 स्थापित के साथ सर्वर 2012 पर ऐसा न करें। इसने मुझे तब तक परेशान किया जब तक कि मैं ServiceModelReg.exe -ua नहीं चला। सर्वर 2012 के समाधान के लिए यहां देखें: stackoverflow.com/questions/11116134/…
स्कॉट एंडरसन

109

विंडोज 2012 सर्वर R2 पर मेरे लिए क्या काम किया:

WCF HTTP 404

धन्यवाद "हारून डी" को जाता है


3
अब तक का सबसे आसान विकल्प।
BIDeveloper

कि मेरे लिए Win10, Win8.1 डेस्कटॉप और Win2012 सर्वर पर काम किया :) धन्यवाद!
स्कीपर

कि मेरे लिए Win10, Win8.1 डेस्कटॉप और Win2012 सर्वर पर काम किया :) धन्यवाद!
स्कीपर

2
किसी कारण से, मुझे 3.5 के साथ-साथ 4.5 के लिए और कमांड लाइन के माध्यम से फीचर को स्थापित करना पड़ा: dism /online /enable-feature /featurename:WCF-http-Activation45 /all और इसके अलावा dism /online /enable-feature /featurename:WCF-http-Activation /all
रॉकलैन


56

मुझे यह निर्देश एक ब्लॉग पोस्ट पर मिला जिसमें इस कदम का संकेत दिया गया था, जिसने मेरे लिए काम किया (विंडोज 8, 64-बिट):

सुनिश्चित करें कि विंडोज़ सुविधाओं में, आपके पास WCF दोनों विकल्प हैं। नेट फ्रेमवर्क टिक किया हुआ है। तो कंट्रोल पैनल पर जाएं -> प्रोग्राम्स और फीचर्स -> विंडोज फीचर्स ऑन / ऑफ करें -> फीचर्स -> ऐड फीचर्स -> .NET फ्रेमवर्क XX फीचर्स। सुनिश्चित करें कि .Net फ्रेमवर्क कहता है कि यह स्थापित है, और सुनिश्चित करें कि इसके नीचे WCF सक्रियण नोड चयनित है (चेकबॉक्स टिक गया) और WCF सक्रियण के तहत दोनों विकल्प भी जांचे गए हैं।
य़े हैं:
* HTTP एक्टिवेशन
* नॉन-HTTP एक्टिवेशन
दोनों विकल्पों का चयन करने की आवश्यकता है (चेक बॉक्स टिक किया हुआ)।

2
अगर मैं इसे एक से अधिक बार बढ़ा सकता हूं, तो यह मुझे NUTS चला रहा था, चीयर्स!
क्रिस डब्ल्यू।

4

मैं देख रहा हूँ कि आप पहले ही अपनी समस्या का समाधान कर चुके हैं - लेकिन बाद के लिए:

हमारे पास एक समान समस्या थी, और एसवीसी हैंडलर पहले से ही सही तरीके से स्थापित था। एसवीसी हैंडलर तक पहुँचने से पहले हमारी समस्या विस्तारा रहित एक्सलर हैंडलर प्रोसेसिंग अनुरोध थी।

इसे जांचने के लिए - वेब सर्वर स्तर पर IIS प्रबंधक में हैंडलर मैपिंग में, क्रम में हैंडलर की सूची देखें (यह दाईं ओर एक विकल्प है)। यदि विभिन्न ExtensionlessUler संधारित्र SVC संचालकों के ऊपर दिखाई देते हैं, तो बार-बार उन्हें नीचे ले जाएं, जब तक कि वे नीचे न हों।


1

सत्यापित करता है कि आप निर्देशिका को एक एप्लिकेशन में बदल दिया गया है, आपका IIS है।


1

मुझे आज भी यही समस्या है।

मेरे लिए, समाधान IIS में जाना था, नए वेब साइट के नाम पर राइट-क्लिक करें, गुण, ASP.Net का चयन करें, और "1.1.4322" से ASP.Net संस्करण को बदलें (जो इसे डिफ़ॉल्ट के रूप में सेट किया गया था) से 2.0.50727 रु।

एक बार मैंने ऐसा कर लिया, तो मैं .svc फ़ाइल पर राइट-क्लिक कर सकता हूं, "ब्राउज़ करें" पर क्लिक कर सकता हूं और मित्रवत सेवा वेबपेज देख सकता हूं।


1

IIS 10. प्रबंधन संगतता को विंडोज़ 10 में सक्षम करने के बाद यह एक मुद्दा भी बन सकता है। WCF सेवाओं के अंतर्गत फ्रेमवर्क HTTP सक्रियण सेट करने से समस्या ठीक हो जाएगी।


0

मेरे मामले में, फ़ाइल Applicationhost.config (\ System32 \ inetsrv \ config) में गलत मैपिंग सेटिंग्स के कारण त्रुटि हुई थी। किसी कारण से, Visual Studio 2013 ने IIS में वर्चुअल निर्देशिका बनाते समय इसे दूषित कर दिया। फ़ाइल में साइट्स अनुभाग को मैन्युअल रूप से संपादित करने के लिए फिक्स था।


0

सर्वर 2012 में ऐड रोल / फीचर्स में फीचर्स के तहत 2 .नेट फ्रेमवर्क वर्जन दिए गए हैं

ए। 3.5

ख। 4.5

उपयोग किए गए ढांचे के आधार पर आप WCF सेवाओं के तहत HTTP-सक्रियकरण को सक्षम कर सकते हैं। :)


0

मेरे मामले में विन 10. फ़ाइल applicationHost.config VS 2012 द्वारा दूषित है। और आप इस फ़ाइल के इतिहास की प्रतिलिपि C: \ inetpub \ इतिहास के तहत प्राप्त कर सकते हैं। फिर IIS को पुनरारंभ करें और यह ठीक से काम करता है।


0

मुझे अनुरोध फ़िल्टरिंग सेटिंग्स में अनुमत एक्सटेंशन में .svc को जोड़ना पड़ा (पहले 404.7 त्रुटियां मिलीं)।

यहां छवि विवरण दर्ज करें


0

अनुरोध को छानने में अनुमति के रूप में .svc प्रत्यय जोड़ना मेरे लिए चाल है।


0

उपरोक्त में से किसी भी समाधान ने मेरे लिए इस त्रुटि को हल नहीं किया। मुझे web.config में निम्नलिखित सेट करने थे:

system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
  <transport clientCredentialType="None" />
</security>

मैं .NET फ्रेमवर्क के साथ इतनी बड़ी गड़बड़ बनाने और डेवलपर जीवन को इतने लंबे समय तक दयनीय बनाने के लिए एक बार फिर से CURSE Microsoft को यह अवसर देना चाहता हूं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.