खोज…


परिचय

विंडोज कम्युनिकेशन फाउंडेशन (WCF) सेवा-उन्मुख अनुप्रयोगों के निर्माण के लिए एक रूपरेखा है। WCF का उपयोग करते हुए, आप डेटा को अतुल्यकालिक संदेशों के रूप में एक सेवा समापन बिंदु से दूसरे में भेज सकते हैं। एक सेवा समापन बिंदु IIS द्वारा होस्ट की गई लगातार उपलब्ध सेवा का हिस्सा हो सकता है, या किसी एप्लिकेशन में होस्ट की जाने वाली सेवा हो सकती है। संदेश एकल वर्ण या शब्द के रूप में सरल हो सकते हैं जिसे XML के रूप में भेजा गया है, या बाइनरी डेटा की एक धारा के रूप में जटिल है।

सैंपल लेना शुरू किया

सेवा उस ऑपरेशन का वर्णन करती है जो वह सेवा अनुबंध में करता है जिसे वह सार्वजनिक रूप से मेटाडेटा के रूप में उजागर करता है।

// Define a service contract.  
[ServiceContract(Namespace="http://StackOverflow.ServiceModel.Samples")]  
public interface ICalculator  
{  
    [OperationContract]  
    double Add(double n1, double n2);
}

सेवा कार्यान्वयन उपयुक्त परिणाम की गणना और रिटर्न करता है, जैसा कि निम्नलिखित उदाहरण कोड में दिखाया गया है।

// Service class that implements the service contract.  
public class CalculatorService : ICalculator  
{  
    public double Add(double n1, double n2)  
    {  
        return n1 + n2;  
    }
}

सेवा, सेवा के साथ संचार करने के लिए एक समापन बिंदु को उजागर करती है, जिसे कॉन्फ़िगरेशन फ़ाइल (Web.config) का उपयोग करके परिभाषित किया गया है, जैसा कि निम्नलिखित नमूना विन्यास में दिखाया गया है।

<services>  
    <service   
        name="StackOverflow.ServiceModel.Samples.CalculatorService"  
        behaviorConfiguration="CalculatorServiceBehavior">  
        <!-- ICalculator is exposed at the base address provided by  
         host: http://localhost/servicemodelsamples/service.svc.  -->  
       <endpoint address=""  
              binding="wsHttpBinding"  
              contract="StackOverflow.ServiceModel.Samples.ICalculator" />  
       ...  
    </service>  
</services>

रूपरेखा डिफ़ॉल्ट रूप से मेटाडेटा को उजागर नहीं करती है। जैसे, सेवा ServiceMetadataBehavior को चालू करती है और http: //localhost/servicemodelsamples/service.svc/mex पर मेटाडेटा एक्सचेंज (MEX) समापन बिंदु को उजागर करती है। निम्न कॉन्फ़िगरेशन यह प्रदर्शित करता है।

<system.serviceModel>  
  <services>  
    <service   
        name="StackOverflow.ServiceModel.Samples.CalculatorService"  
        behaviorConfiguration="CalculatorServiceBehavior">  
      ...  
      <!-- the mex endpoint is explosed at  
       http://localhost/servicemodelsamples/service.svc/mex -->  
      <endpoint address="mex"  
                binding="mexHttpBinding"  
                contract="IMetadataExchange" />  
    </service>  
  </services>  

  <!--For debugging purposes set the includeExceptionDetailInFaults  
   attribute to true-->  
  <behaviors>  
    <serviceBehaviors>  
      <behavior name="CalculatorServiceBehavior">  
        <serviceMetadata httpGetEnabled="True"/>  
        <serviceDebug includeExceptionDetailInFaults="False" />  
      </behavior>  
    </serviceBehaviors>  
  </behaviors>  
</system.serviceModel>  

क्लाइंट किसी दिए गए अनुबंध प्रकार का उपयोग करके ग्राहक वर्ग का उपयोग करके संचार करता है जो ServiceModel मेटाडेटा उपयोगिता उपकरण (Svcutil.exe) द्वारा उत्पन्न होता है।

टाइप किए गए प्रॉक्सी को उत्पन्न करने के लिए क्लाइंट निर्देशिका में SDK कमांड प्रॉम्प्ट से निम्न कमांड चलाएँ:

svcutil.exe /n:"http://StackOverflow.ServiceModel.Samples,StackOverflow.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs  

सेवा की तरह, क्लाइंट उस समापन बिंदु को निर्दिष्ट करने के लिए एक कॉन्फ़िगरेशन फ़ाइल (App.config) का उपयोग करता है जिसके साथ वह संवाद करना चाहता है। क्लाइंट समापन बिंदु कॉन्फ़िगरेशन में सेवा समापन बिंदु, बाइंडिंग और अनुबंध के लिए एक पूर्ण पता होता है, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है।

<client>  
     <endpoint  
         address="http://localhost/servicemodelsamples/service.svc"   
         binding="wsHttpBinding"   
         contract="StackOverflow.ServiceModel.Samples.ICalculator" />  
</client>  

क्लाइंट कार्यान्वयन क्लाइंट को त्वरित करता है और सेवा के साथ संचार शुरू करने के लिए टाइप किए गए इंटरफ़ेस का उपयोग करता है, जैसा कि निम्नलिखित उदाहरण कोड में दिखाया गया है।

// Create a client.  
CalculatorClient client = new CalculatorClient();  

// Call the Add service operation.  
double value1 = 100.00D;  
double value2 = 15.99D;  
double result = client.Add(value1, value2);  
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result); 

//Closing the client releases all communication resources.  
client.Close();  


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow