最近项目中,需要对外部程序提供服务接口,用来进行数据交互和部分设备控制。由于都是使用的.NET平台开发的,因此想到使用WCF服务。之前也用过WCF服务,但是当初使用的时候是通过IIS寄宿的,有些地方不太让人满意,一则是同一个软件要部署两个地方,CS的桌面程序和寄宿于IIS的WCF服务部分,二则是由于系统本身问题,使用的是SQLite数据库,无法实现多线程访问,造成了数据重复,容易造成数据不一致。所以现在准备把WCF服务寄宿于CS程序中,这样就解决了以上两个问题。
由于对WCF一知半解,只知道按部就班的使用,从明白过其中的道理,所以在网上找了些教程[1],实现了自己的想法,但其中碰到不少问题,想来还是记下,或许以后还有用处。
本文使用一个最简单的控制台应用程序,同时通过使用WcfTestClient.exe测试,来完成这个示例。
一、在代码中实现并配置WCF服务。
在VS2012中创建一个控制台应用程序项目CsWcf,并添加接口ICalculator作为契约接口、类CalculatorService作为服务实现此接口中的操作方法,代码如下:
1. ICalculator.cs--服务契约
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
6:
namespace CsWcf
8: {
9: [ServiceContract]
interface ICalculator
11: {
12: [OperationContract]
double y);
14: }
15: }