2012-10-14 8 views
5

.Net4 के लिए, वहाँ निम्नलिखितसर्विसहोस्ट और WebServiceHost के बीच क्या अंतर है?

Uri baseAddress = new Uri("http://localhost:8080/test"); 
ServiceHost host = new ServiceHost(typeof(TestService), baseAddress); 
host.Open(); 

और

Uri baseAddress = new Uri("http://localhost:8080/test"); 
WebServiceHost host = new WebServiceHost(typeof(TestService), baseAddress); 
host.Open(); 

सभी पुस्तकों webServiceHost उपयोग करने की अनुशंसा के बीच कोई अंतर है, लेकिन कारण है कि मैं अंतर नहीं देख सकते हैं?

उत्तर

1

जब आपके पास सेवा प्रकार है तो WebServiceHost(Object, Uri[]) कन्स्ट्रक्टर का उपयोग करें और आवश्यकता होने पर आप इसके नए उदाहरण बना सकते हैं, भले ही आपको सिंगलटन इंस्टेंस की आवश्यकता हो। केवल ServiceHost(Object, Uri[]) कन्स्ट्रक्टर का उपयोग करें, जब आप सेवा होस्ट को सेवा के एक विशिष्ट सिंगलटन उदाहरण का उपयोग करना चाहते हैं।

+1

तुम्हारा मतलब ServiceHost सिंगलटन है इंजेक्शन endpoint कॉन्फ़िगर करते हैं, लेकिन WebServiceHost नहीं है? कोई सबूत? –

+0

@AdamLee इस [एमएसडीएन] से टिप्पणी पढ़ें (http://msdn.microsoft.com/en-us/library/ms585489 (v = vs.100) .aspx) पृष्ठ – Jaguar

6

WebServiceHost कक्षा ServiceHost कक्षा पर आधारित है।

यह डिफ़ॉल्ट रूप से WebHttpBinding और WebHttpBehavior के साथ आता है। (अच्छी बात यह है कि आप एक विन्यास फाइल की जरूरत नहीं है आसान उपयोग के लिए, है।)

MSDN से

:

आप ServiceHost के बजाय WebServiceHost उपयोग करते हैं, यह स्वचालित रूप से आप के लिए एक वेब एंडपॉइंट का उपयोग करके पैदा करेगा आधार HTTP पता और WebHttpBehavior

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