2008-08-28 11 views
10

डब्ल्यूसीएफ सेवा में कितने सर्विसकंट्रक्ट हो सकते हैं?डब्ल्यूसीएफ सेवा में कितने सर्विसकंट्रक्ट हो सकते हैं?

विशेष रूप से, चूंकि सर्विसकंट्रैक्ट एक इंटरफ़ेस में एक विशेषता है, तो मैं एक डब्ल्यूसीएफ वेब सेवा में कितने इंटरफेस कोड कर सकता हूं? क्या यह एक-एक है?

क्या यह कई वेब सेवाओं में अनुबंधों को अलग करने के लिए समझ में आता है?

उत्तर

1

आप अपने सभी सेवा अनुबंधों को लागू करने के लिए एक सेवा कर सकते हैं। मेरा मतलब है, मुझे नहीं पता कि कोई सीमा है या नहीं, लेकिन मुझे नहीं लगता कि वहां है।

यह उन परिचालनों को अलग करने का एक साफ तरीका है जो कई वैचारिक रूप से विभिन्न सेवा अनुबंध इंटरफेस में एक ही सेवा द्वारा लागू किए जाएंगे।

1

@jdiaz

बेशक आप विभिन्न सेवाओं में बहुत अलग व्यापार मामलों के लिए प्रयास करना चाहिए, लेकिन मामला है जिसमें आपको लगता है कि, उदाहरण के लिए, अपने सभी सेवाओं एक GetVersion() आपरेशन लागू चाहते हैं पर विचार करें। आप केवल उस ऑपरेशन के लिए एक सेवा अनुबंध प्राप्त कर सकते हैं और अपनी सेवा के अनुबंध में GetVersion() ऑपरेशन जोड़ने के बजाय, प्रत्येक सेवा को कार्यान्वित कर सकते हैं।

0

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

यदि आप अपनी सेवा होस्ट करने के लिए सर्विसहोस्ट क्लास का उपयोग कर रहे हैं, हालांकि, आईआईएस के बजाय, आप केवल सर्विसहोस्ट प्रति एक इंटरफेस को जोड़ सकते हैं। मुझे यकीन नहीं है कि यह मामला क्यों है, लेकिन यह है।

18

डब्ल्यूसीएफ सेवाओं में कई अंतराल हो सकते हैं, जिनमें से प्रत्येक एक अलग सेवा अनुबंध लागू कर सकता है।

उदाहरण के लिए, आप एक सेवा हो सकता था इस प्रकार की घोषणा की:

[ServiceBehavior(Namespace = "DemoService")] 
public class DemoService : IDemoService, IDoNothingService 

कौन सा इन पंक्तियों के साथ विन्यास होगा:

<service name="DemoService" behaviorConfiguration="Debugging"> 
    <host> 
    <baseAddresses> 
     <add baseAddress = "http://localhost/DemoService.svc" /> 
    </baseAddresses> 
    </host> 
    <endpoint 
    address ="" 
    binding="customBinding" 
    bindingConfiguration="InsecureCustom" 
    bindingNamespace="http://schemas.com/Demo" contract="IDemoService"/> 
    <endpoint 
    address ="" 
    binding="customBinding" 
    bindingConfiguration="InsecureCustom" 
    bindingNamespace="http://schemas.com/Demo" contract="IDoNothingService"/> 
</service>  

आशा है कि मदद करता है, लेकिन आप सैद्धांतिक अधिकतम के बाद थे इंटरफेस जो आपके पास एक सेवा के लिए हो सकता है, मुझे संदेह है कि यह कुछ पागलपन से बड़ा है 2.

+0

अच्छा। इसे साफ़ करने के लिए 10x। –

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