2013-01-08 36 views
5

का समर्थन करने के लिए ठीक से कॉन्फ़िगर नहीं किया गया है मेरे पास एक डब्ल्यूसीएफ सेवा और सिल्वरलाइट 5 क्लाइंट है। मैं परिभाषित किया है निम्नलिखित इंटरफेस:कोई त्रुटि प्राप्त करने के लिए: अनुबंध को डुप्लेक्स की आवश्यकता होती है, लेकिन बाध्यकारी 'BasicHttp बाइंडिंग' इसका समर्थन नहीं करता है या इसे

[ServiceContract(Namespace = "Silverlight", CallbackContract = typeof(IDuplexClient))] 
public interface IDuplexService 
{ 
    [OperationContract] 
    void Subscribe(string userId); 

    [OperationContract] 
    void Unsubscribe(string userId); 
} 

[ServiceContract] 
public interface IDuplexClient 
{ 
    [OperationContract(IsOneWay = true)] 
    void PushNotification(string msg); 
} 

और ये मेरे Web.config फ़ाइल है:

The service '/ServerService.svc' cannot be activated due to an exception during compilation. The exception message is: Contract requires Duplex, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.

मैं: जब मैं सेवा मैं चलाने का प्रयास

<configuration> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
</configuration> 

मुझे पता है कि मुझे Web.config पर कुछ गुण जोड़ने की ज़रूरत है, लेकिन जहां भी मैंने देखा (और जो भी मैंने कोशिश की) मैं इसे काम नहीं कर सका।

मैं डब्ल्यूसीएफ के लिए नया हूं और मुझे उस विषय पर आपकी सहायता चाहिए। मेरे सभी गुगल मुझे कहीं भी नेतृत्व नहीं करते हैं और जिन लोगों ने एक ही सवाल पूछा है, वे मेरे लिए काम नहीं करते हैं।

तो मैंने खोज छोड़ने और बस पूछने का फैसला किया है।

अद्यतन: मैं इंटरफ़ेस बनाने के लिए इस लिंक का इस्तेमाल किया - http://msdn.microsoft.com/en-us/library/cc645027%28v=vs.95%29.aspx

उत्तर

13

हैं कि WCF के लिए अपने web.config विन्यास की हद तक है, तो आप अनुभाग याद कर रहे हैं अपने अनुबंध को परिभाषित करता है कि:

<services> 
    <service name="WebApplication1.Service1"> 
    <endpoint address="" binding="wsDualHttpBinding" contract="WebApplication1.IService1" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 

यदि आपके पास यह अनुभाग निर्दिष्ट है, तो अन्य संभावित कारण यह है कि अनुबंध का नाम पूरी तरह योग्य नहीं है; इसमें पूर्ण नामस्थान शामिल होना चाहिए न केवल अनुबंध का नाम।

यहाँ पूर्ण System.ServiceModel विन्यास है:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <services> 
     <service name="WebApplication1.Service1"> 
     <endpoint address="" binding="wsHttpBinding" contract="WebApplication1.IService1" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    </system.serviceModel> 

इस मामले में, आवेदन नाम स्थान IService1 है WebApplication1, सेवा की क्लास नाम Service1 (यानी Service1.svc) है और इंटरफ़ेस है कि Service1 लागू करता है ।

+0

क्या आप कृपया 'माईस सर्विस', 'माईएसएल सेवा सेवा', 'माईएसएल सेवा', 'आईएमएस सेवा' और 'इमेटाडाटा एक्सचेंज' क्या बता सकते हैं? यह शुरुआत करने वालों की आंखों में स्पष्ट नहीं है। क्या मुझे कुछ '' संपत्ति जोड़ने की ज़रूरत नहीं है? – assafmo

+1

इसे अधिक समझने योग्य बनाने के लिए थोड़ा सा जवाब साफ़ किया गया और पूर्ण कॉन्फ़िगरेशन जोड़ा गया। –

+0

धन्यवाद, लेकिन मुझे अभी भी पूर्ण कॉन्फ़िगरेशन दिखाई नहीं दे रहा है। – assafmo