मैं एक्सटेंशन-कम/.svc-कम WCF सेवाओं का उपयोग करने का प्रयास कर रहा हूं। क्या कोई और समस्या का सामना कर रहा है या उस मुद्दे को अस्वीकार कर सकता है?सर्विस रूट + WebServiceHostFactory WSDL पीढ़ी को मारता है? विस्तारित डब्ल्यूसीएफ सेवा कैसे बनाएं? Wsdl
मैं global.asax.cs के कोड में मार्ग का उपयोग करें, और यह करने के Application_Start में:
RouteTable.Routes.Add(new ServiceRoute("Data", new WebServiceHostFactory(), typeof(DataDips)));
मैं दोनों IIS 6 में परीक्षण किया है और IIS 7.5 है और मैं सेवा ठीक उपयोग कर सकते हैं (यानी मेरी एक्सटेंशन-कम वाइल्डकार्ड मैपिंग हैंडलर कॉन्फ़िगरेशन एएसपी.नेट पर सही ढंग से इंगित किया गया है)। हालांकि, मेटाडाटा पीढ़ी पूरी तरह से खराब हो गई है। I डब्ल्यूसीएफ टेस्ट क्लाइंट (और मैं svcutil.exe) के साथ मेरा/मैक्स एंडपॉइंट हिट कर सकता हूं - लेकिन? Wsdl पीढ़ी जिसे आप आम तौर पर प्राप्त करते हैं। एसवीसी टोस्ट है। मैं इसे ब्राउज़र के साथ नहीं मार सकता (400 खराब अनुरोध प्राप्त करें), मैं इसे wsdl.exe आदि से नहीं मार सकता। मेटाडाटा पीढ़ी web.config में सही तरीके से कॉन्फ़िगर किया गया है।
यह निश्चित रूप से एक समस्या है, क्योंकि सेवा को बुनियादी एचटीपी बाइंडिंग के रूप में उजागर किया गया है ताकि पुरानी शैली एएसएमएक्स क्लाइंट इसे प्राप्त कर सके। लेकिन निश्चित रूप से, ग्राहक डब्लूएसडीएल विवरण के बिना प्रॉक्सी उत्पन्न नहीं कर सकता है।
मैं बजाय बजाय कोड में एक मार्ग को पंजीकृत करने से इस तरह config में serviceActivation मार्ग का उपयोग करते हैं,:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<serviceActivations>
<add relativeAddress="Data.svc" service="DataDips" />
</serviceActivations>
</serviceHostingEnvironment>
तो देखा ... यह काम करता है।
लेकिन तब मेरे पास एक साफ़ विस्तार रहित यूआरएल नहीं है। यदि मैं Data.svc से डेटा में सापेक्ष एड्रेस बदलता हूं, तो मुझे कॉन्फ़िगरेशन अपवाद मिलता है क्योंकि यह कॉन्फ़िगरेशन द्वारा समर्थित नहीं है। (डब्ल्यूसीएफ में पंजीकृत एक एक्सटेंशन का उपयोग करना चाहिए)।
मैं भी ऊपर config के साथ संयोजन के रूप में इस कोड का उपयोग करने का प्रयास किया:
RouteTable.Routes.MapPageRoute("","Data/{*data}","~/Data.svc/{*data}",false);
मेरे सोच है कि मैं सिर्फ .svc कॉन्फ़िगर किया गया यूआरएल पर extensionless यूआरएल बात कर सकते हैं। यह काम नहीं करता है - /Data.svc काम करने के लिए जारी है, लेकिन/डेटा ऊपर serviceActivation साथ देता है एक 404.
मैं एक काम के आसपास मिला है, तो इस तरह config में urlMappings का उपयोग कर संयोजन के रूप में,:
<urlMappings>
<add url="~/Data" mappedUrl="Data.svc"/>
</urlMappings>
इस के साथ समस्या यह
दोहरा है - 1. यह 2. घुमावदार लगता उत्पन्न डबल्यूएसडीएल में, आपरेशन अंतिम बिंदुओं अभी भी Data.svc का उल्लेख/के बजाय डेटा/- इसलिए निर्भरता Data.svc पर theres वास्तव में मौजूदा/प्रतिक्रिया।
यह वास्तव में वही नहीं है जो मैं चाहता हूं, भले ही यह थोड़ी/समस्या हल करे।
क्या डब्लूएसडीएल उत्पन्न करने के लिए विस्तार से कम डब्ल्यूसीएफ सेवा यूआरएल प्राप्त करने का कोई उचित तरीका है?
यहाँ चरण-दर-चरण निर्देश: http://stackoverflow.com/a/27850224/276949 –