• WCF自定义行为 Step by Step (一)搭建环境


    本文适用于自托管Service。

    我们要建立一个最简单的WCF程序,包括Service、ServiceHost和Client。

    1)创建一个空的解决方案,起名为WCFBehaviorSolution,如下图所示(反正写blog不废纸,又不是写书,多截些图,读者不会骂我)

    image

    2)创建自托管Service,这是一个WCF Service库,专门适用于WCF自托管项目的:

    image

    创建项目后,WcfServiceLibrary1中存在3个文件:

    image

    IService1和Service1,这是契约及其实现类,不要动它们,因为我要实现一个最简单的WCF示例。

    App.config,这是配置文件。我们稍候要用到它。

    2)创建ServiceHost,这是一个控制台程序,起名为ServerConsoleApplication。

    既然是自托管,那就要添加对WcfServiceLibrary1的引用,注意只是简单的Add Reference,而不是Add Service Reference。

    同时,因为ServiceHost是服务的宿主,所以我们要把WcfServiceLibrary1项目中的App.config剪切到ServiceHost项目中,注意是剪切,而不是复制,让这个配置文件只存在于ServiceHost项目中。

    image

    现在让这个ServiceHost运行起来,于是我们在ServerConsoleApplication项目的Main函数中,敲下如下代码:

    static void Main(string[] args)
    {
        using (ServiceHost host = new ServiceHost(typeof(Service1)))
        {
            host.Open();
    
            Console.WriteLine("Service started.");
    
            Console.ReadKey(true);
        }
    }

    3)创建Client,这也是一个控制台程序,起名为ClientConsoleApplication。

    为了方便在Client添加对Service的引用,我建议大家,同时打开两个WCFBehaviorSolution解决方案,其中一个解决方案作为Service,将ServerConsoleApplication设置为启动项目(同时将ClientConsoleApplication项目unload):

    image

    按下F5,于是该Service就运行起来了:

    image

    查看App.config,这个Service的地址是http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/,记住它,下面我们要用到。

    与此同时,我们在另一个解决方案中,将ClientConsoleApplication设置为启动项目(同时将ClientConsoleApplication和WcfServiceLibrary1项目都unload):

    image

    这样就可以在ClientConsoleApplication项目中添加对Service的引用了,输入上面的Service地址,http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/,检索到该Service,点击OK按钮将其添加到项目中:

    image

    接下来,我们在ClientConsoleApplication项目的Main函数中,调用这个Service的GetData方法:

    static void Main(string[] args)
    {
        ServiceReference1.Service1Client client = new ClientConsoleApplication.ServiceReference1.Service1Client();
    
        string price = client.GetData(1982);
    
        Console.WriteLine(price);
    
        Console.ReadKey(true);
    }

    按下F5,显示如下结果:

    image

    至此,一个WCF创建完毕。

    注意几点,我们只是运用Visual Studio随便的点了点,大致写了几行程序。关于其原理,请参见我之前的文章《WCF的一些QA》。

    本文代码下载:WCFBehaviorSolution0.zip

    读到这里,是不是觉得太简单了,和自定义行为没半点关系,别急,下文开始加荤的,本文只是建立基本的测试环境。

  • 相关阅读:
    再度学习MYSQL-----(1.基础)
    GIL解释器锁(进程与线程的应用场景)
    Django学习三有关表的创建查询类
    Django学习二模板
    Django学习一
    JQuery学习一
    前端基础学习之css二
    前端基础之css一
    mysql----单表多表查询
    MySQL-----表操作
  • 原文地址:https://www.cnblogs.com/Jax/p/1590259.html
Copyright © 2020-2023  润新知