WCF - Tự lưu trữ
Ở đây, dịch vụ WCF được lưu trữ trong một ứng dụng bảng điều khiển. Dưới đây là quy trình với các bước phù hợp theo trình tự giải thích toàn bộ quy trình.
Step 1- Đầu tiên, chúng ta hãy tạo hợp đồng Dịch vụ và việc thực hiện nó. Tạo một ứng dụng console và đặt tên là MyCalculatorService. Đây là một dịch vụ đơn giản để trả về phép cộng hai số.
Step 2- Bây giờ, nhấp chuột phải vào Tài liệu tham khảo trong Trình khám phá giải pháp và nhấp vào Thêm tài liệu tham khảo. Cửa sổ sau sẽ mở ra; thêm tham chiếu System.ServiceModel vào dự án.
Step 3- Tạo giao diện ISimpleCalculator, Thêm thuộc tính ServiceContract và OperationContract vào lớp và hàm như hình bên dưới. Bạn sẽ biết thêm về các hợp đồng này trong phần sau. Các hợp đồng này sẽ đưa phương pháp ra thế giới bên ngoài khi sử dụng dịch vụ này.
Step 4 - Mã đằng sau tệp này như sau:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace MyCalculatorWCFService {
[ServiceContract()]
Public interface ISimpleCalculator {
[OperationContract()]
int Add(int num1, int num2);
}
}
Step 5 - MyCalculatorService là lớp thực thi cho giao diện IMyCalculatorService như hình bên dưới.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyCalculatorWCFService {
Class SimpleCalculator : ISimpleCalculator {
Public int Add(int num1, int num2) {
return num1 + num2;
}
}
}
Step 6- Bây giờ, chúng tôi đã sẵn sàng với dịch vụ. Hãy bắt đầu thực hiện quy trình lưu trữ. Tạo một ứng dụng console mới và đặt tên là 'MyCalculatorWCFServiceHost'.
Step 7 - Thêm tham chiếu của system.servicemodel và dự án MyCalculatorWCFService.
Mã đằng sau điều này như sau:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyCalculatorWCFService;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace MyCalculatorWCFServiceHost {
class Program {
static void Main(string[] args) {
//Create a URI to serve as the base address
UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator");
//Create ServiceHost
ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl);
//Add a service endpoint
host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), "");
//Enable metadata exchange
ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
//Start the Service
host.Open();
Console.WriteLine("Service is host at " + DateTime.Now.ToString());
Console.WriteLine("Host is running... Press key to stop");
Console.ReadLine();
}
}
}