2010-01-06 12 views
5

मैं एक डब्ल्यूसीएफ क्लाइंट को एक ही अनुबंध को लागू करने वाली सेवाओं के एक समूह को जोड़ रहा हूं और सभी एक ही होस्ट में। मैं उम्मीद कर रहा था कि कॉन्फ़िगरेशन अव्यवस्था पर कटौती करने के लिए एंडपॉइंट परिभाषाओं को गठबंधन करने का एक तरीका होगा। मैं इसे प्रोग्रामेटिक रूप से भी नहीं करूँगा - बस कॉन्फ़िगरेशन द्वारा। - वहाँ ग्राहक विन्यास के लिए कुछ भी हैडब्ल्यूसीएफ ग्राहक विन्यास - आधार पता?

<endpoint address="http://hostname/ServiceA.svc" 
     binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_MyBinding" 
     contract="ServiceReference.ISearchService" name="ServiceA"> 
</endpoint> 

<endpoint address="http://hostname/ServiceB.svc" 
     binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_MyBinding" 
     contract="ServiceReference.ISearchService" name="ServiceB"> 
</endpoint> 

// continued for ServiceC, ServiceD, etc 

सर्वर विन्यास के लिए, कुछ notion of "baseAddressPrefixFilters" कि इस उद्देश्य के लिए इस्तेमाल किया जा सकता है: अभी, मेरी config इस कई बार दोहराया गया है?

उत्तर

3

डब्ल्यूसीएफ में आधार पते की अवधारणा है - दुर्भाग्य से, यह केवल तभी काम करता है जब आप स्वयं-होस्ट करते हैं, उदा। कंसोल ऐप या एनटी सेवा में अपनी सेवा होस्ट करें। हालांकि, यह केवल सर्वर पक्ष पर काम करता है - क्लाइंट पक्ष पर कुछ भी समान नहीं है। ग्राहक पक्ष पर, आपको हमेशा अपने पूर्ण बिंदु से कनेक्ट होने वाले पूर्ण, पूर्ण सेवा पते को परिभाषित करना होगा।

यदि आप आईआईएस में होस्ट करते हैं, तो आपका सेवा पता सर्वर नाम, वर्चुअल निर्देशिका (और संभवतया उपनिर्देशिकाओं के अंतर्गत) और आईआईएस में सेवा होस्ट करने के लिए उपयोग की जाने वाली * .svc फ़ाइल का नाम निर्धारित होता है। यह एक निश्चित सिस्टम सम्मेलन है और आप इसे प्रभावित नहीं कर सकते हैं, दुर्भाग्यवश (.NET 4 उस पर कुछ उपाय लाएगा)।

+2

नेट 4 के साथ ऐसा करने के तरीके पर कोई खबर नहीं है? मैं समाधान ढूंढने के लिए संघर्ष कर रहा हूं। – flayn

+0

@flo: देखें [डब्ल्यूसीएफ 4 के लिए एक डेवलपर का परिचय] (http://msdn.microsoft.com/en-us/library/ee354381.aspx) और 'फ़ाइल-कम सक्रियण' की खोज करें (भौतिक के बिना सेवा सक्रियण * .svc फ़ाइल) और 'एएसपी.नेट रूट्स के साथ डब्ल्यूसीएफ को एकीकृत करना' जो आपको अपनी सेवा सक्रियताओं को परिभाषित करने के लिए मार्गों (जैसे एएसपी.नेट एमवीसी) का उपयोग करने की अनुमति देता है (आपको * .svc एक्सटेंशन के बिना "अच्छा" यूआरएल देता है) - लेकिन यह दूसरी सुविधा केवल आरईएसटी-आधारित सेवाओं के लिए प्रतीत होती है :-( –

संबंधित मुद्दे