WCF - Sử dụng dịch vụ WCF

Các dịch vụ WCF cho phép các ứng dụng khác truy cập hoặc sử dụng chúng. Một dịch vụ WCF có thể được sử dụng theo nhiều cách tùy thuộc vào loại máy chủ. Ở đây, chúng tôi đang giải thích phương pháp từng bước để sử dụng dịch vụ WCF cho mỗi tùy chọn lưu trữ phổ biến sau:

  • Sử dụng Dịch vụ WCF được lưu trữ trong IIS 5/6
  • Sử dụng Dịch vụ WCF tự lưu trữ
  • Sử dụng Dịch vụ WCF được lưu trữ trong Dịch vụ Kích hoạt Windows
  • Sử dụng Dịch vụ WCF được lưu trữ trong Dịch vụ Windows

Sử dụng dịch vụ WCF được lưu trữ trong IIS 5/6

Quá trình sử dụng dịch vụ WCF được lưu trữ trong IIS 5/6 được thảo luận chi tiết dưới đây. Ngoài ra, cuộc thảo luận bao gồm cách tạo các ứng dụng proxy và console.

Step 1- Khi một dịch vụ được lưu trữ trong IIS, chúng ta phải sử dụng nó trong các ứng dụng khách. Trước khi tạo ứng dụng khách, chúng ta cần tạo proxy cho dịch vụ. Proxy này được ứng dụng khách sử dụng để tương tác với dịch vụ. Để tạo proxy, hãy chạy dấu nhắc lệnh Visual Studio 2008. Sử dụng tiện ích dịch vụ, chúng ta có thể tạo lớp proxy và thông tin cấu hình của nó.

svcutilhttp: //localhost/IISHostedService/Service.svc

Sau khi thực hiện lệnh này, chúng ta sẽ nhận được hai tệp được tạo ở vị trí mặc định.

  • MyService.cs - Lớp proxy cho dịch vụ WCF

  • output.config - Thông tin cấu hình về dịch vụ

Step 2 - Bây giờ, chúng ta sẽ bắt đầu tạo ứng dụng Console bằng Visual Studio 2008 (Ứng dụng khách).

Step 3- Thêm tham chiếu 'System.ServiceModel'; đây là dll cốt lõi cho WCF.

Step 4 - Tạo một lớp 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();
      }
   }
}

Kết quả xuất hiện như sau:

Sử dụng dịch vụ WCF tự lưu trữ

Ở đây, toàn bộ quá trình sử dụng Dịch vụ WCF tự lưu trữ được giải thích từng bước cùng với mã hóa và ảnh chụp màn hình phong phú bất cứ khi nào cần thiết.

Step 1- Dịch vụ được lưu trữ, bây giờ chúng ta cần triển khai lớp proxy cho máy khách. Có nhiều cách khác nhau để tạo proxy.

  • Sử dụng SvcUtil.exe, chúng ta có thể tạo lớp proxy và tệp cấu hình của nó với các điểm cuối.

  • Thêm tham chiếu Dịch vụ vào ứng dụng khách.

  • Triển khai lớp ClientBase <T>

Trong ba phương pháp này, thực hiện ClientBase <T> là phương pháp tốt nhất. Nếu bạn đang sử dụng hai phương pháp còn lại, chúng tôi cần tạo một lớp proxy mỗi khi thực hiện bất kỳ thay đổi nào trong việc triển khai Dịch vụ. Nhưng đây không phải là trường hợp của ClientBase <T>. Nó sẽ chỉ tạo proxy trong thời gian chạy và vì vậy nó sẽ xử lý mọi thứ.

Với mục đích này, hãy tạo một lớp proxy, bao gồm các tham chiếu của System.ServiceModel và 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);
      }
   }
}

Bây giờ, hãy tạo một ứng dụng bảng điều khiển, bao gồm các tham chiếu của System.ServiceModel và 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 - Thông tin điểm cuối (giống như dịch vụ) nên được thêm vào tệp cấu hình của ứng dụng khách.

<?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- Trước khi chạy ứng dụng khách, bạn cần chạy dịch vụ. Dưới đây là đầu ra của ứng dụng khách.

Sử dụng dịch vụ WCF được lưu trữ trong WAS

Sử dụng dịch vụ WCF được lưu trữ trong WAS là một quá trình đơn giản chỉ gồm một vài bước. Các bước như sau:

  • Thêm lớp proxy và tệp cấu hình vào ứng dụng khách.
  • Tạo đối tượng cho MathServiceClient và gọi phương thức.
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();
      }
   }
}

Kết quả xuất hiện như hình dưới đây.

Sử dụng dịch vụ WCF được lưu trữ trong dịch vụ Windows

Quy trình từng bước về cách sử dụng dịch vụ WCF được lưu trữ trong Windows Service được trình bày chi tiết bên dưới với mã hóa và hướng dẫn.

Khi nó được lưu trữ thành công, chúng tôi có thể tạo một lớp proxy cho dịch vụ và bắt đầu sử dụng trong ứng dụng khách. Ở đây, nó được hiển thị với loại lưu trữ IIS đang tiêu thụ.

Thêm tham chiếu củ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();
      }
   }
}

Kết quả xuất hiện như sau: