1.创建空的解决方案
2.新建项目-WCF服务库项目,项目名称:XfrogWCFService
3.在XfrogWCFService项目中添加[System.ServiceModel]的引用
4.上图是改项目的机构打开IFirstServices.cs这个是接口也是一个服务契约,客户端调用方法都必须遵守,代码如下。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; namespace XfrogWCFService { /// <summary> /// 注意在接口上申明了ServiceContract特性,即服务契约,表明该接口是一个服务 /// </summary> [ServiceContract] public interface IFirstService { /// <summary> /// 表示该方法是IFirstService的一个服务方法,客户端可远程调用该方法。 /// </summary> /// <param name="name"></param> /// <returns></returns> [OperationContract] String GetData(int a,int b); } }
5.再打开FiretService.cs这个文件对接口进行实现,也就是Web方法所要实现的功能,为了学习,做了一个两数相加的操作,代码如下。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace XfrogWCFService { public class FirstService : IFirstService { string IFirstService.GetData(int a,int b) { return String.Format("{0}+{1}={2}",a,b,(a+b)); } } }
6.下面我们在解决方案中重新建立一个【客户端控制台应用程序】的项目,名称叫做Host,这是web服务的主人[宿主],意思是该服务的启动或者关闭都归它来控制。
7.我们的解决方案成了上面的结构,也同样要添加[System.ServiceModel]的引用,还有对XfrogWCFService的引用,然后打开Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using XfrogWCFService; namespace Host { class Program { static void Main(string[] args) { //这段代码说创建一个新的服务宿主,这个服务是FirstService //也就是实现IFirstService接口的类 using (ServiceHost host = new ServiceHost(typeof(FirstService))) { host.Open(); Console.WriteLine("服务已启动,按任意键中止..."); Console.ReadKey(true); host.Close(); } } } }
8.接下来打开Host项目中的App.config文件,应该是会添加ServiceModel节点,如下面:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="XfrogWCFService.FirstService" behaviorConfiguration="behaviorConfiguration"> <host> <baseAddresses> <add baseAddress="http://192.168.10.58:8100/"/> </baseAddresses> </host> <endpoint address="http://192.168.10.58:8100/" binding="basicHttpBinding" contract="XfrogWCFService.IFirstService" name="BasicHttpBinding_IFirstService"></endpoint> </service> </services> <behaviors> <serviceBehaviors> <behavior name="behaviorConfiguration"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>
9.现在服务这边应该就是搭建好了,可以测试下,运行Host项目:如果是这样代表服务已经搭建成功了!
------------------------------------下面是客户端的哦-----------------------------------------
时间: 2024-10-10 20:42:28