2009-06-29 11 views
5

मैं टीसीपी बंदरगाहों के माध्यम से डब्ल्यूसीएफ सेवाओं की मेजबानी कैसे करूं, और मैं इन टीसीपी बंदरगाहों के माध्यम से इसे कैसे सुनूं और सेवाओं का उपभोग कैसे करूं?टीसीपी बंदरगाहों के माध्यम से डब्ल्यूसीएफ की मेजबानी कैसे करें?

नेटटीसीपी बाध्यकारी के अलावा, क्या टीसीपी बंदरगाहों का उपयोग करके मेजबान और उपभोग करने का कोई तरीका है?

+0

तो मूल रूप से, Windows XP में होस्टिंग n लेने वाली 3 तरीके 1.self मेजबानी 2.IIS 3.as Windows सेवा तो एक TCP पोर्ट खोलने और उसका उपयोग, आत्म के अंतर्गत आता है में किया जा सकता होस्टिंग या यह एन उपभोग करने वाली डब्ल्यूसीएफ सेवाओं की मेजबानी का एक और तरीका है या क्या टीसीपी के तहत कोई और तरीका है? – kurozakura

उत्तर

8

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

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

और पढ़ें here

+1

तो मूल रूप से, Windows XP में होस्टिंग n लेने वाली 3 तरीकों से किया जा सकता है 1.self मेजबानी 2.IIS 3.as Windows सेवा तो एक TCP पोर्ट खोलने और उसका उपयोग, स्वयं की मेजबानी या के तहत आता है क्या यह एन उपभोग करने वाली डब्ल्यूसीएफ सेवाओं की मेजबानी का एक और तरीका है या क्या टीसीपी के तहत कोई अन्य तरीका है? – kurozakura

+0

विंडोज एक्सपी आईआईएस 7 नहीं चलाता है, इसलिए आप XP के तहत आईआईएस पर एक टीसीपी एंडपॉइंट होस्ट नहीं कर सकते हैं। आप विंडोज सेवा होस्ट को एक डब्ल्यूसीएफ सेवा बना सकते हैं, लेकिन यह स्वयं होस्टिंग का एक और उदाहरण है। –

0

आप अपनी डब्ल्यूसीएफ सेवाओं को होस्ट करने के लिए किसी भी बंदरगाह का उपयोग कर सकते हैं (बशर्ते आपको इसके लिए अनुमति मिल गई हो)। WCF सेवाओं को होस्ट करने के लिए IIS का उपयोग करते समय यह कुछ अलग है, लेकिन स्वयं-होस्टिंग वातावरण में, बस अपने मूल पते पर पोर्ट नंबर जोड़ें और आप कर चुके हैं। (Vista या Server 2008 का उपयोग करते समय, आपको व्यवस्थापक विशेषाधिकारों (उदाहरण के लिए नेट्स का उपयोग करके) नहीं चलते समय पोर्ट को पहुंच प्रदान करनी होगी)

उदाहरण के लिए उदाहरण के लिए एक http सेवा (या net.tcp) के लिए पोर्ट 1337 बस अपने मूल पते पर ": 1337 /" जोड़ें और शेष आपके लिए किया जाता है।

+0

तो मूल रूप से, Windows XP में होस्टिंग n लेने वाली 3 तरीकों से किया जा सकता है 1.self मेजबानी 2.IIS 3.as Windows सेवा तो एक TCP पोर्ट खोलने और उसका उपयोग, स्वयं की मेजबानी या के तहत आता है यह एन उपभोग करने वाली डब्ल्यूसीएफ सेवाओं की मेजबानी का एक और तरीका है या क्या कोई और तरीका है? – kurozakura

+0

यहां एक बंदरगाह खोलने के लिए नेट्स का उपयोग करने के बारे में अधिक जानकारी: http://msdn.microsoft.com/en-us/library/ms733768.aspx –

0

इस मदद

<services> 
    <service behaviorConfiguration="configname" 
    name="servicename"> 
    <endpoint address="" binding="netTcpBinding" bindingConfiguration="MyServiceBinding" 
     name="NetTcpBindingEndpoint" bindingName="MyServiceBinding" 
     contract="Interface"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 

    <endpoint address="mex" binding="customBinding" bindingConfiguration="myMexTcpBinding" 
     name="MexTcpBindingEndpoint" contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://localhost:prot/TestService" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
0

सभी HTTP बाइंडिंग परिवहन परत के लिए टीसीपी के साथ काम हो सकता है। तो, आप एक विशिष्ट टीसीपी पोर्ट पर चलने वाली डब्ल्यूसीएफ सेवा की मेजबानी करने के लिए HTTP बाइंडिंग और आईआईएस 6 का उपयोग कर सकते हैं।

  • कॉन्फ़िगर विन्यास फाइल (या कोड) से अपने इच्छित बंदरगाह पर चलाने के लिए सेवा:

    <service name="WCFService" behaviorConfiguration="DefaultBehaviour"> 
    <host> 
        <baseAddresses> 
        <add baseAddress="http://localhost:8000/WCFService" /> 
        </baseAddresses> 
    </host> 
    <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="WCFService_mexEndpoint" contract="IMetadataExchange" /> 
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultBinding" name="WCFService_Endpoint" contract="WCFService.IService1" /> 
    

    यहाँ कैसे इस लक्ष्य को हासिल करने के लिए पर एक walktrough है

  • आईआईएस में एक वेबसाइट (या वर्चुअल निर्देशिका) और सह बनाएं nfigure यह आपके बेस एड्रेस सेवा कॉन्फ़िगरेशन (ऊपर दिए गए उदाहरण के लिए 8000) में आपके द्वारा चुने गए बंदरगाह पर चलाने के लिए बाध्यकारी है।

ऊपर दिए गए चरणों का परिणाम एक WCF सेवा है कि परिवहन परत के लिए TCP पोर्ट 8000 पर चलता है, परिवहन प्रोटोकॉल के रूप में HTTP का उपयोग कर रहा है।

संपादित करें: मुझे विश्वास है कि आप यहां थोड़ा भ्रम कर रहे हैं। यदि आप जो हासिल करने की कोशिश कर रहे हैं वह एक द्विआधारी ट्रामयुक्त पैकेज है तो हाथ में एकमात्र समाधान net.tcp बाध्यकारी है, जो आईआईएस 6 के साथ संगत नहीं है। यदि आप कनेक्शन के टीसीपी पोर्ट का चयन करने में सक्षम होना चाहते हैं, तो किसी भी HTTP बाध्यकारी से ऊपर मेरे उदाहरण में प्रस्तुत किया जा सकता है, और IIS.6 में उपयोग किया जा सकता है।

+0

इसलिए मूल रूप से, विंडोज़ xp होस्टिंग एन खपत में 3 तरीके 1 में किया जा सकता है। स्व-होस्टिंग 2. आईआईएस 3. एक विंडोज सेवा तो एक टीसीपी पोर्ट खोलना और इसे उपभोग करना, स्वयं-होस्टिंग के अंतर्गत आता है या यह एन उपभोग करने वाली डब्ल्यूसीएफ सेवाओं की मेजबानी करने का एक और तरीका है या क्या कोई अन्य तरीका है यानी टीसीपी के तहत ? – kurozakura

+0

मुझे लगता है कि आप आईआईएस 7 में डब्ल्यूएएस के साथ टीसीपी होस्ट कर सकते हैं। –

+0

HTTP एक एप्लीकेशन प्रोटोकॉल है, परिवहन नहीं। – aehlke

0

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

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

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