📅  最后修改于: 2020-11-19 09:24:39             🧑  作者: Mango
WCF服务允许其他应用程序访问或使用它们。根据托管类型,可以通过多种方式使用WCF服务。在这里,我们将逐步说明为以下每个流行的托管选项使用WCF服务的方法-
IIS 5/6中托管的WCF服务的使用过程将在下面详细讨论。此外,讨论还包括如何创建代理和控制台应用程序。
步骤1-将服务托管在IIS中后,我们必须在客户端应用程序中使用它。在创建客户端应用程序之前,我们需要为服务创建一个代理。客户端应用程序使用此代理与服务进行交互。若要创建代理,请运行Visual Studio 2008命令提示符。使用服务实用程序,我们可以创建代理类及其配置信息。
svcutilhttp://localhost/IISHostedService/Service.svc
执行此命令后,我们将在默认位置生成两个文件。
MyService.cs -WCF服务的代理类
output.config-有关服务的配置信息
步骤2-现在,我们将开始使用Visual Studio 2008(客户端应用程序)创建控制台应用程序。
步骤3-添加引用“ System.ServiceModel”;这是WCF的核心dll。
步骤4-创建一个代理类。
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();
}
}
}
输出显示如下-
在此,将逐步解释使用自托管WCF服务的整个过程,并在必要时逐步说明充足的编码和屏幕截图。
步骤1-托管服务,现在我们需要为客户端实现代理类。有多种创建代理的方法。
使用SvcUtil.exe,我们可以创建带有端点的代理类及其配置文件。
将服务引用添加到客户端应用程序。
实现ClientBase
在这三种方法中,实现ClientBase
为此,创建一个代理类,其中包括System.ServiceModel和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 {
Public int Add(int num1, int num2) {
//Call base to do funtion
returnbase.Channel.Add(num1, num2);
}
}
}
现在,创建一个控制台应用程序,其中包含System.ServiceModel和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();
}
}
}
步骤2-端点(与服务相同)信息应添加到客户端应用程序的配置文件中。
步骤3-在运行客户端应用程序之前,您需要运行服务。下面显示的是客户端应用程序的输出。
消耗WAS中托管的WCF服务是一个简单的过程,仅涉及几个步骤。步骤如下-
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();
}
}
}
输出如下所示。
下面通过编码和说明详细介绍了如何使用Windows Service中托管的WCF服务的分步过程。
成功托管后,我们可以为服务创建代理类并开始在客户端应用程序中使用。在这里,它与IIS托管类型一起使用。
添加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();
}
}
}
输出显示如下-