代码之家  ›  专栏  ›  技术社区  ›  ctacke

从远程dll调用WCF服务

  •  0
  • ctacke  · 技术社区  · 15 年前

    我有一个进程,我们称之为进程A,它承载通过基本HTTP绑定公开的简单WCF服务。如果我启动该进程,那么我就可以从另一个进程访问服务,即进程B,没有问题。

    但是,我需要的用例并不是那么简单。我需要做的是从承载远程处理的dll访问服务。远程DLL由进程A在单独的AppDomain中建立,它位于本地计算机上。

    当我从进程A调用远程dll中的一个方法时,该方法又应该调用进程A中托管的WCF服务,调用方挂起,一分钟后,我得到一个服务超时。从未输入服务代码(从未到达在外部调用时被击中的断点)。

    远程DLL 能够创建客户机代理类的实例会告诉我(如果我在这里是WRON,请纠正我),服务的配置至少在远程客户机中可用。它不会抱怨缺少配置信息,也不会像删除服务引用时在外部客户机中那样抛出异常。

    所以我想我的问题是多方面的。首先,远程DLL能否首先调用WCF服务(即,客户端是否可以使用所有必需的基础结构)?如果可以,我可能会错过什么?如何调试类似的东西呢?当远程调试是一个简单的情况时,它是很痛苦的——而这并不是那么简单。

    最后一件事-我不能改变这样一个事实:我正在远程处理dll,远程dll需要使用服务。它是这个应用程序基础设施中根深蒂固的一部分。但是,如果另一个进程有任何用途的话,我可以将大多数WCF服务主机托管到另一个进程(我可以在等待任何答案的同时尝试这样做)。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Dani    15 年前

    远程DLL能够创建客户机代理类的实例这一事实并不能说明配置是正常的。

    确保您使用的基址与服务器使用的基址相同,协议和安全模式相同。

    既然你在同一台机器上,就不应该有网络问题。

        2
  •  0
  •   ctacke    14 年前

    最后我们完全移除了远程处理。这是更多的工作,但是正确的做法。