डब्ल्यूसीएफ नौसिखिया यहाँ ... मैं NetTcp बाइंडिंग का उपयोग कर एक डब्ल्यूसीएफ सेवा को स्वयं होस्ट करने की कोशिश कर रहा हूं। MSDN "how-to" tutorial मैंने किया है के आधार पर सभी कोड है, जो मैं तो NetTcpBinding को WsHttpBinding से बदल गया है, और अब में बाध्यकारी इस तरह दिखता है:क्या आप कोड में NetTcp बाइंडिंग कर सकते हैं? अगर आप?
var baseAddress = new Uri("net.tcp://localhost:8000/MyWebService");
var selfHost = new ServiceHost(typeof(ConcreteWebService), baseAddress);
try {
var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Message;
selfHost.AddServiceEndpoint(typeof(IWebService), binding, "TRWebService");
selfHost.Open();
Console.WriteLine("The service is ready at {0}", baseAddress.AbsoluteUri);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
selfHost.Close();
} catch (CommunicationException ce) {
Console.WriteLine("An exception occurred: {0}", ce.Message);
selfHost.Abort();
}
बात है, ट्यूटोरियल तो कहते हैं कि आप के लिए svcutil.exe चलाने के लिए है क्लाइंट के लिए प्रॉक्सी उत्पन्न करें ... लेकिन जब से मैं NetTcp बाइंडिंग पर स्विच करता हूं, svcutil अब और काम नहीं करता है - मेरी सेवा का पता नहीं लगा सकता है। मैंने इस मुद्दे को गुमराह किया, और पाया कि NetTcp बाइंडिंग के बाहर हर एक उदाहरण ऐप.कॉन्फिग फ़ाइल में सेटअप करता है, कोड में नहीं, और वे सभी "mexTcp बाइंडिंग" के बाध्यकारी प्रकार के साथ "मेक्स" नामक एक एंडपॉइंट जोड़ते हैं। कोड में इसका कोई समकक्ष प्रतीत नहीं होता है।
तो, क्या मुझे अपनी परियोजना को app.config का उपयोग करने के लिए बदलना है, और कोड-आधारित दृष्टिकोण को छोड़ देना है? क्या कोई मुझे बता सकता है कि मैक्स क्या है, मुझे इसकी आवश्यकता क्यों है, और क्यों (स्पष्ट रूप से) कोड में नहीं कहा जा सकता है - या यदि यह कर सकता है, कैसे, या क्यों इसे निराश किया जाता है? आम तौर पर, app.config का उपयोग करना बेहतर होता है, और जब डब्ल्यूसीएफ सेवाओं के लिए कोड होता है?
मैं सटीक उसी ट्यूटोरियल का पालन कर रहा था और कॉलबैक अनुबंध चाहता था, इसलिए जब मैंने टीसीपी पर स्विच किया तो मुझे एक ही समस्या थी। – bryanbcook