none
多服务之间怎么协作? WCF的宿主程序基本是什么都不做的么? RRS feed

  • 问题

  • 假设有一批数据,针对不同的客户,提供了两个接口:IService1, IService2。
    那么两个服务在初始化以后,怎么访问同一块数据?

    做为启动参数传进去么?
    例如有Data类。

    那么写这样的代码?
    Data data;
    Service1 s1 = new Service1(data);
    Service2 s2 = new Service2(data);

    ServiceHost host1 = new ServiceHost(s1);
    host1.open();
    ServiceHost host2 = new ServiceHost(s2);
    host2.open();

    还是可以写一个类实现两个服务
    class Service : IService1, IService2
    {...}

    但是如果没法写成同一个服务类呢。

    或者再定义额外的接口,通过这个接口访问外界?

    PS:我现在觉得WCF的宿主程序基本就是什么事情都不做。启动WCF以后就可以休息了。

    2009年10月23日 8:05

答案

  • Hi,
    我简单回答一下,也欢迎大家补充。
    1.这个可能牵扯到对象资源互斥访问的问题,可能要使用互斥锁Lock来避免同时操作对象。
    2.在客户端反序列的契约会合并两个接口。
    3.宿主,其实是托管WCF服务。宿主进程拥有独立的内存空间,线程的资源都依赖于宿主进程。

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月23日 12:43
    版主