मैं उलझन में हूं कि कुछ क्यों काम करता है। मैं इस तरह एक WCF सेवा को विन्यस्त कर रहा हूँ:डब्ल्यूसीएफ सेवा एंडपॉइंट लोकलहोस्ट भ्रम
<services>
<service name="ClientCommand" behaviorConfiguration="SomeServiceBehavior">
<endpoint contract="IClientCommand" binding="netTcpBinding" BindingConfiguration="TcpPort" address="net.tcp://localhost:1304" />
</service>
</services>
BindingConfiguration और behaviorConfiguration
बहुत सरल कर रहे हैं, बस कुछ समय समाप्ति को विन्यस्त।
मेरे exe में, मैं इस तरह मेजबान शुरू करता हूं।
_serverHost = new ServiceHost(type); // implementing IClientCommand
_serverHost.Open();
यह सब बहुत आसान है और यह काम करता है, मैं इस सेवा को एक अलग पीसी से कॉल कर सकता हूं। हालांकि, एक अलग मुद्दे पर पढ़ने के बाद (टीसीपी सॉकेट पर सुनना), मुझे लगता है कि यह काम नहीं करना चाहिए। जैसा कि मैं स्थानीयहोस्ट पर बाध्यकारी हूं, यह सेवा उस पीसी के बाहर से पहुंच योग्य नहीं होनी चाहिए जिस पर यह चल रहा है?
मैंने पीसी पर नेटस्टैट की जांच की और यह "127.0.0.1" के बजाय आईपी एड्रेस "0.0.0.0" से जुड़ा हुआ है, यह बताते हुए कि यह किसी अन्य पीसी से क्यों काम करता है।
लेकिन मुझे नहीं लगता कि यह स्थानीयहोस्ट से "0.0.0.0" क्यों जाता है?
मैंने थोड़ी गहरी खुदाई की, केवल अधिक भ्रमित होने के लिए। अगर मैं 'net.tcp: // 127.0.0.1/service' का उपयोग करता हूं, तो यह वास्तव में लूपबैक से जुड़ जाएगा और यह पीसी के बाहर से पहुंच योग्य नहीं होगा। हालांकि 'net.tcp: // localhost/service' 0.0.0.0 से बंधेगा और लूपबैक के बाहर से पहुंच योग्य होगा। क्यूं कर? – Greuntesop