2008-09-26 12 views
6

के लिए न्यूनतम न्यूनतम कॉन्फ़िगरेशन आरईएसटी के साथ काम कर रहे डब्ल्यूसीएफ को प्राप्त करने के लिए मुझे वेब.कॉन्फिग में कितना न्यूनतम रखना होगा? मैंने [वेबगेट] के साथ अपनी विधियों को एनोटेट किया है, लेकिन उन्हें संदेश नहीं मिल रहा है।रीस्टफुल डब्लूसीएफ

उत्तर

6

मैं तुम्हें यह स्वचालित रूप से सेटअप WebHttpBinding और WebHttpBehavior आप के लिए * .svc फ़ाइल में ServiceHost निर्देश के लिए निम्न जोड़ सकते हैं और कर सकते हैं कि पता चला:

Factory="System.ServiceModel.Activation.WebServiceHostFactory" 

ध्यान दें कि नामस्थान वेब पर कहीं और उल्लेख किया गया है (जैसे this MSDN article) से थोड़ा अलग है।

ऐसा करने के बाद, मैं web.config से पूरे अनुभाग को हटाने में सक्षम था और सबकुछ अभी भी काम करता था!

+0

पूरे "खंड"। मैं एक नौसिखिया हूँ। क्या आप अधिक विशिष्ट हो सकते हैं? ...? – froggythefrog

2

सुनिश्चित करें कि आप अपने एंडपॉइंट पर वेबहट्प बाइंडिंग का उपयोग करें (और httpBinding या wsHttp बाइंडिंग नहीं)। यहाँ मेरी endpoint config है ...

<endpoint address="" binding="webHttpBinding" bindingConfiguration="" 
     contract="WcfCore.ICustomer"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
+0

मैंने कोशिश की, लेकिन एक त्रुटि संदेश मिला: "... EndpointDispatcher पर पताफिल्टर मेल नहीं खाता।" यह पता चला है कि आपको अपने व्यवहार में WebHttpBehavior जोड़ने की भी आवश्यकता है, लेकिन मुझे नहीं पता कि web.config में ऐसा कैसे करें। – kgriffs

+0

<व्यवहार नाम = "restBehavior"> GWTF

1

आप सुनिश्चित करने के लिए आप अपनी सेवा मेजबान उदाहरण के लिए एक पता है कि

<services> 
     <service name="SomeLib.SomeService"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8080/somebase"/> 
      </baseAddresses> 
     </host> 
<!-- And one EndPoint **basicHttpBinding** WILL WORK !!! --> 

     <endpoint 
        address="basic" 
        binding="basicHttpBinding" 
        contract="SomeLib.SomeContract"/> 
</service> 
</services> 

तो अब, आप स्वयं एक कंसोल एप्लिकेशन के माध्यम से की मेजबानी कर रहे हैं eg..you के माध्यम से अपने मेजबान आह्वान कर सकते हैं के लिए की जरूरत है:

WebChannelFactory<IServiceContract> factory = 
     new WebChannelFactory<IServiceContract>(
      new Uri("http://localhost:8080/somebase")); 

जब कंसोल ऐप शुरू होता है, तो पता भी ब्राउज़ किया जा सकता है भले ही उसका स्वयं होस्ट हो और आप अपने वेबजेट यूरी टेम्पलेट्स के आधार पर अपने कार्यों का आह्वान करने में सक्षम होना चाहिए।

यह न्यूनतम कॉन्फ़िगरेशन आपको स्वयं को स्वयं कोस्टिंग के माध्यम से डब्लूसीएफ का आह्वान करने देगा। यदि आप आईआईएस में होस्टिंग कर रहे हैं तो यह अनिवार्य रूप से उसी तरह काम करेगा, सिवाय इसके कि svc फ़ाइल हमारे कस्टम होस्ट को बदल देती है।

संबंधित मुद्दे