मेरे पास एक डब्ल्यूसीएफ सेवा है जो ठीक है, अगर मैं किसी बाध्यकारी या एंडपॉइंट को निर्दिष्ट किए बिना सेवा बनाता हूं (यह ऐप.कॉन्फिग में जेनरेट किए गए मानों से इसे पढ़ता है जब मैंने विजुअल स्टूडियो के माध्यम से डब्ल्यूसीएफ पंजीकृत किया है)।डब्ल्यूसीएफ: मैं इन App.config मानों को प्रोग्रामेटिक रूप से फिर से कैसे बना सकता हूं?
return new SmsServiceReference.SmsEngineServiceClient();
यह ठीक काम करता है (क्योंकि मूल्यों config से पढ़ा जाता है):
मैं एक सरल विधि है कि सेवा संदर्भ देता है। हालांकि, मैं एक डाटाबेस (उदाहरण के लिए यूआरआइ) में इन मूल्यों के कुछ करना चाहते हैं और कुछ इस तरह करना चाहते हैं:
Binding binding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("my.uri.com/service.svc");
return new SmsServiceReference.SmsEngineServiceClient(binding,endpointAddress);
यह काम नहीं करता। जब मैं सेवा संदर्भ का उपयोग करने का प्रयास करता हूं तो यह एक अपवाद फेंकता है।
मुझे संदेह है कि ऐसा इसलिए है क्योंकि मेरे App.config में अधिक जानकारी है कि वहां दो पंक्तियां उपलब्ध नहीं हैं (जाहिर है)। सवाल यह है कि, मैं निम्नलिखित ऐप को दोहरा सकता हूं। प्रोग्राम मूल्यों को कॉन्फ़िगर करें?
यहां मेरे ऐप का खंड है। कॉन्फिग: (यूआरआई को मासूम की रक्षा के लिए बदला गया है)।
<endpoint address="http://www.myuri.com/Services/Services.svc/basic"
लेकिन अपने कोड नमूने में, आपके द्वारा बनाए गए:
EndpointAddress endpointAddress = new EndpointAddress("my.uri.com/service.svc");
पतों से मेल खाना चाहिए
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISmsEngineService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://www.myuri.com/Services/Services.svc/basic"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISmsEngineService"
contract="SmsServiceReference.ISmsEngineService" name="BasicHttpBinding_ISmsEngineService" />
</client>
यह चाल है। धन्यवाद। –