2011-01-04 15 views
5

डब्ल्यूसीएफ सेवा में मेरे पास एक एंडपॉइंट बाइंडिंग सेट है जो wsHttp बाइंडिंग के रूप में है। हालांकि जब मैं सेवा संदर्भ जोड़ने के लिए विजुअल स्टूडियो का उपयोग करता हूं तो मेरे क्लाइंट app.config बाध्यकारी को मूल Http बाइंडिंग के रूप में दिखाता है। क्या कोई जानता है कि यह क्यों हो रहा है?wsHttp बाइंडिंग क्लाइंट app.config में बुनियादी एचटीपी बाइंडिंग

सेवा में मेरा एंडपॉइंट web.config (आईआईएस 7.5 में होस्ट किया गया)। हो जाता है baseAddresses

से
<endpoint address="" 
    binding="wsHttpBinding" 
    bindingConfiguration="wsHttpServiceBinding" 
    contract="MyProject.IMyService" /> 

ग्राहक app.config का पता:

<client> 
    <endpoint address="http://example.com/MyService.svc" 
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService" 
    contract="Service.MyService" name="BasicHttpBinding_MyService" /> 
</client> 
+3

शायद आपके कॉन्फ़िगरेशन का उपयोग नहीं किया गया है और आपका क्लाइंट डिफ़ॉल्ट कॉन्फ़िगरेशन से बनाया गया है। जांचें कि आपके सेवा तत्व में वह नाम ServicHost निर्देश (.svc फ़ाइल) में सेवा प्रकार के समान है, जिसमें नामस्थान शामिल हैं। आप इसे डब्लूएसडीएल में भी सत्यापित कर सकते हैं। –

+0

मैंने पोस्ट में इसका उल्लेख नहीं किया क्योंकि यह इसे सरल रखने की कोशिश कर रहा था लेकिन मेरे पास दो बाइंडिंग हैं, दूसरा net.tcp है जो किसी भी मुद्दे के बिना आता है, इसलिए मेरा भ्रम। – Cragly

उत्तर

7

- Ladislav Mrnka मुझे इस के साथ सही दिशा में इशारा किया। बहुत बहुत धन्यवाद।

मैंने सवाल को सरल रखने की कोशिश की क्योंकि मैंने सोचा कि उत्तर सीधे आगे हो सकता है। हालांकि मुझे अपने सेट अप को थोड़ा और विस्तार से समझा जाना चाहिए था क्योंकि यह वह जगह है जहां मेरी समस्या का जवाब पड़ा।

मेरे डब्ल्यूसीएफ सेवा आवेदन में रहने वाले मेरे सेवा अनुबंध (IMYService) के बजाय मेरे पास यह एक अन्य डोमेन प्रोजेक्ट में था जहां मैं अपने सभी इंटरफेस रखता हूं ताकि उन्हें कई अलग-अलग परियोजनाओं में पुन: उपयोग किया जा सके। मेरे डब्ल्यूसीएफ सेवा अनुप्रयोग में .web.config मेरे पास कार्यान्वयन के बजाए इंटरफ़ेस प्रोजेक्ट पर इंगित सेवा नाम था। इसने VS2010 (svcutil.exe) को डिफ़ॉल्ट सेटिंग्स के आधार पर प्रॉक्सी और कॉन्फ़िगरेशन बनाने के लिए प्रेरित किया (मुझे लगता है कि machine.config (WCF 4 के लिए) में रहें)।

तो इस मुद्दे पर आने वाले किसी और के लिए संक्षेप में यह सेवा नाम गलत स्थान पर इंगित कर रहा था। सुनिश्चित करें कि सेवा का नाम कार्यान्वयन को इंगित करता है (आमतौर पर डब्ल्यूसीएफ सेवा आवेदन - MyProject.MyService) में और एंडपॉइंट अनुबंध सेवा अनुबंध को इंगित करता है (डब्ल्यूसीएफ सेवा आवेदन या बाहरी परियोजना - MyProject.IMyService या AnotherProject.Interfaces.IMyService)।

आपकी सभी मदद के लिए धन्यवाद।