WCF教程一:新建并部署

一、概述

Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。
WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。
WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。
WCF专门用于面向服务开发。


WCF教程一:新建并部署_第1张图片

客户机使用浏览器访问服务器A,服务器A为了业务需要与其他各种应用部署在服务器B、C、D....再通过WCF技术互相通信,相互访问...然而面向服务的好处不仅仅在此,他还提供了不同语言不同操作系统的可交互性。

二、新建WCF

说明:本文环境是建立在VS2017的基础上,不同版本VS操作上可能会有点不同

  1. 新建项目,直接选择创建WCF服务应用程序,


    WCF教程一:新建并部署_第2张图片

    创建之后,生成这样的目录:


    WCF教程一:新建并部署_第3张图片

2.删除系统生成的两个文件IService1.cs与Service1.svc。

3.添加自定义的WCF【服务文件】User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法PlusNumber,在User.svc.cs对该接口的方法进行实现。

WCF教程一:新建并部署_第4张图片

代码如下:

//IUser.cs
namespace WcfService1
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IUser”。
    [ServiceContract]
    public interface IUser
    {
        //[OperationContract]
        //void DoWork();
        [OperationContract]
        string PlusNumber(int a, int b);
    }
}

//User.svc.cs
namespace WcfService1
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“User”。
    // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 User.svc 或 User.svc.cs,然后开始调试。
    public class User : IUser
    {
        //public void DoWork()
        //{
        //}
        public string PlusNumber(int a, int b)
        {
            int c = a + b;
            string result = "WCF服务计算结果:"+c.ToString();
            return result;
        }
}
}

大家可以看到,在WCF中的接口与普通接口的区别只在于两个上下文,其他的和我们正常学习的接口一样。定义这个上下文要添加System.ServiceModel的引用。
[ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。
[OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。

此时我们的第一个WCF服务程序就建立好了,将User.svc“设为起始页”,然后F5运行一下试试,如下图所示,VS自动调用了WCF的客户端测试工具以便我们测试程序,然后双击PlusNumber()方法名,就会出现下图:

WCF教程一:新建并部署_第5张图片

在请求窗口中的值中输入参数“a”与“b”,然后点击“调用”,在响应窗口中会出现返回值“WCF服务计算结果:a+b的值”,说明测试成功,点击下面的XML也可以看到XML的数据传输。我们现在建立好了服务的应用程序和业务逻辑。

三、将WCF部署到IIS

到IIS右击网站,然后添加网站,将下图的参数填上。


WCF教程一:新建并部署_第6张图片

然后再右击WcfService1文件将它设为应用程序:


WCF教程一:新建并部署_第7张图片

然后就可以浏览此服务:
WCF教程一:新建并部署_第8张图片

点击User.svc,跳转到以下调用页面:

WCF教程一:新建并部署_第9张图片

点击 http://localhost:8001/WcfService1/User.svc?wsdl,从这里可以看到我写的方法,这个地址也是我们后用将要引用的地址:
WCF教程一:新建并部署_第10张图片

现在我们的WCF服务就算是已经部署完成了。

四、调用WCF

这边我是打算创建一个web服务程序来调用,所以我新建一个空白MVC web项目,


WCF教程一:新建并部署_第11张图片

创建后目录:


WCF教程一:新建并部署_第12张图片

然后添加服务引用,将添加好参数,可以修改引用命名空间名称,


WCF教程一:新建并部署_第13张图片

完成添加后,这里我是选择创建一个Test控制器以及对应视图来达到调用那个WCF的服务,要记得using刚添加的WCF引用,这样才能使用。
控制器代码如下:

using WebForTest.ServiceReference1;
public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            ViewBag.result = "暂无计算";
            return View();
        }
        // POST: Test
        [HttpPost]
        public ActionResult Index(int a,int b)
        {

            UserClient user = new UserClient();
            string result = user.PlusNumber(a, b);
            ViewBag.result = result;
            return View();
        }
    }

视图代码如下:

@{
    ViewBag.Title = "Index";
}

Index

@ViewBag.result

@using (Html.BeginForm("Index", "Test", FormMethod.Post)) {

+

}

运行效果如下:


WCF教程一:新建并部署_第14张图片

WCF教程一:新建并部署_第15张图片

WCF教程一:新建并部署_第16张图片

通过以上例子我们就已经完成了对WCF的一个简单新建,部署及调用

你可能感兴趣的:(WCF教程一:新建并部署)