WCF: utilizzo del servizio WCF

I servizi WCF consentono ad altre applicazioni di accedervi o utilizzarli. Un servizio WCF può essere utilizzato in molti modi a seconda del tipo di hosting. Qui, stiamo spiegando il metodo passo passo per utilizzare un servizio WCF per ciascuna delle seguenti popolari opzioni di hosting:

  • Utilizzo del servizio WCF ospitato in IIS 5/6
  • Consumare il servizio WCF che è ospitato autonomamente
  • Utilizzo del servizio WCF ospitato nel servizio di attivazione di Windows
  • Utilizzo del servizio WCF ospitato nel servizio Windows

Utilizzo del servizio WCF ospitato in IIS 5/6

Il processo di utilizzo di un servizio WCF ospitato in IIS 5/6 viene discusso in dettaglio di seguito. Inoltre, la discussione include come creare proxy e applicazioni console.

Step 1- Una volta che un servizio è ospitato in IIS, dobbiamo utilizzarlo nelle applicazioni client. Prima di creare l'applicazione client, dobbiamo creare un proxy per il servizio. Questo proxy viene utilizzato dall'applicazione client per interagire con il servizio. Per creare un proxy, eseguire il prompt dei comandi di Visual Studio 2008. Utilizzando l'utilità di servizio, possiamo creare la classe proxy e le sue informazioni di configurazione.

svcutilhttp: //localhost/IISHostedService/Service.svc

Dopo aver eseguito questo comando, otterremo due file generati nella posizione predefinita.

  • MyService.cs - Classe proxy per il servizio WCF

  • output.config - Informazioni sulla configurazione del servizio

Step 2 - Ora inizieremo a creare l'applicazione Console utilizzando Visual Studio 2008 (applicazione client).

Step 3- Aggiungi il riferimento "System.ServiceModel"; questa è la dll principale per WCF.

Step 4 - Crea una classe Proxy.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyServiceClient {
   Class Program {
      Static void Main(string[] args) {
         // Creating Proxy for the MyService
         ServiceClient Client = newServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Hello Ram");
         Console.Read();
      }
   }
}

L'output appare come segue:

Utilizzo del servizio WCF self-hosted

Qui, l'intero processo di utilizzo di un servizio WCF self-hosted viene spiegato passo dopo passo insieme a un'ampia codifica e schermate ove necessario.

Step 1- Il servizio è ospitato, ora dobbiamo implementare la classe proxy per il client. Esistono diversi modi per creare il proxy.

  • Usando SvcUtil.exe, possiamo creare la classe proxy e il suo file di configurazione con endpoint.

  • Aggiunta del riferimento al servizio all'applicazione client.

  • Implementazione della classe ClientBase <T>

Di questi tre metodi, l'implementazione di ClientBase <T> è la procedura migliore. Se stai utilizzando gli altri due metodi, dobbiamo creare una classe proxy ogni volta che apportiamo modifiche all'implementazione del servizio. Ma questo non è il caso di ClientBase <T>. Creerà il proxy solo in fase di esecuzione e quindi si prenderà cura di tutto.

A tale scopo, creare una classe proxy, che includa i riferimenti di System.ServiceModel e MyCalculatorService.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorService;

namespace MyCalculatorServiceProxy {
   // WCF create proxy for ISimpleCalculator using ClientBase
   Public class MyCalculatorServiceProxy : 
   ClientBase<ISimpleCalculator>,
   
   ISimpleCalculator {
      Public int Add(int num1, int num2) {
         //Call base to do funtion
         returnbase.Channel.Add(num1, num2);
      }
   }
}

Ora, crea un'applicazione console, che include i riferimenti di System.ServiceModel e MyCalculatorServiceProxy.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient {
   classProgram {
      Static void Main(string[] args) {
         MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();
         
         Console.WriteLine("Client is running at " + DateTime.Now.ToString());
         Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5));
         Console.ReadLine();
      }
   }
}

Step 2 - Le informazioni sull'end-point (come il servizio) devono essere aggiunte al file di configurazione dell'applicazione client.

<?xmlversion = "1.0"encoding = "utf-8" ?>
<configuration>
   <system.serviceModel>
      <client>
         <endpoint address 
            ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator"
            binding = "wsHttpBinding" contract "MyCalculatorServiceProxy.ISimpleCalculator">
            </endpoint>
      </client>
   </system.serviceModel>
</configuration>

Step 3- Prima di eseguire l'applicazione client, è necessario eseguire il servizio. Di seguito è mostrato l'output dell'applicazione client.

Utilizzo del servizio WCF ospitato in WAS

L'utilizzo di un servizio WCF ospitato in WAS è un processo semplice che richiede solo pochi passaggi. I passaggi sono i seguenti:

  • Aggiungere la classe proxy e il file di configurazione all'applicazione client.
  • Crea l'oggetto per MathServiceClient e chiama il metodo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWASHostedClient {
   classProgram {
      staticvoid Main(string[] args) {
         MathServiceClient client = newMathServiceClient();
         Console.WriteLine("Sum of two number 5,6");
         Console.WriteLine(client.Add(5, 6));
         Console.ReadLine();
      }
   }
}

L'output viene visualizzato come mostrato di seguito.

Utilizzo del servizio WCF ospitato nel servizio Windows

Il processo dettagliato di come utilizzare un servizio WCF ospitato nel servizio Windows è espresso di seguito in dettaglio con codifica e istruzioni.

Una volta ospitato correttamente, possiamo creare una classe proxy per il servizio e iniziare a utilizzarlo nell'applicazione client. Qui, viene mostrato con il tipo di hosting IIS in uso.

Aggiungi il riferimento a ServiceModel.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWindowServiceClient {
   classProgram {
      staticvoid Main(string[] args) {
         //Creating Proxy for the MyService
         MyServiceClient client = newMyServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Sum of two numbers 5,6");
         Console.WriteLine(client.Add(5, 6));
        
         Console.WriteLine("Subtraction of two numbers 6,5");
         Console.WriteLine(client.Sub(6, 5));
        
         Console.WriteLine("Multiplication of two numbers 6,5");
         Console.WriteLine(client.Mul(6, 5));
        
         Console.WriteLine("Division of two numbers 6,3");
         Console.WriteLine(client.Div(6, 3));
         Console.Read();
      }
   }
}

L'output appare come segue: