के साथ HTTP के साथ काम नहीं करती है ठीक है इसलिए मैं एक कंसोल एप्लिकेशन के भीतर एक डब्ल्यूसीएफ सेवा होस्ट कर रहा हूं।स्वयं-होस्टेड डब्ल्यूसीएफ सेवा एचटीटीपीएस
सभी बाइंडिंग प्रोग्रामेटिक रूप से बनाई गई हैं, इसलिए कोई कॉन्फ़िगरेशन सेटिंग्स नहीं है।
मैं जब तक एक काम सेवा है के रूप में मैं HttpTransportBindingElement
तथापि का उपयोग जैसे ही मैंने HttpsTransportBindingElement
तो कुछ भी नहीं काम करता है का उपयोग करें, सेवा ब्राउज़र के भीतर प्रदर्शित नहीं करता है और क्लाइंट अनुप्रयोग एक 405 (Method Not Allowed) CommunicationException
मैं एक स्थापित करने की कोशिश की है देता है SecurityBindingElement
मेरे CustomBinding
पर मुझे यकीन नहीं है कि मुझे किस विकल्प का उपयोग करना चाहिए।
SecurityBindingElement.CreateCertificateOverTransportBindingElement()
SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
आदि
मेजबान के निर्माण के लिए कोड है
नीचेbaseAddress = new Uri(string.Format("{0}://{1}", strConnectionType, ConfigurationManager.AppSettings["baseAddress"]));
ServiceHost host = new ServiceHost(typeof(IMyService), baseAddress);
host.AddServiceEndpoint(typeof(MyService), binding, String.Empty);
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpsGetEnabled = certificate != null;
smb.HttpGetEnabled = certificate == null;
host.Description.Behaviors.Add(smb);
ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
if (sdb == null)
{
host.Description.Behaviors.Add(new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });
}
else
{
if (!sdb.IncludeExceptionDetailInFaults)
{
sdb.IncludeExceptionDetailInFaults = true;
}
}
if (certificate != null)
{
host.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, certificate.Thumbprint);
}
'बाध्यकारी 'क्या है? डब्ल्यूसीएफ सेवाओं की प्रोग्रामेटिक कॉन्फ़िगरेशन भी कठिन है, कॉन्फ़िगरेशन फ़ाइल का उपयोग क्यों नहीं करें? –
@ ta.speot.is क्या आप अपने प्रश्न पर और विस्तार कर सकते हैं? –
@ shankar-damodaran संपादन के लिए धन्यवाद :) –