我有一个进程,我们称之为进程A,它承载通过基本HTTP绑定公开的简单WCF服务。如果我启动该进程,那么我就可以从另一个进程访问服务,即进程B,没有问题。
但是,我需要的用例并不是那么简单。我需要做的是从承载远程处理的dll访问服务。远程DLL由进程A在单独的AppDomain中建立,它位于本地计算机上。
当我从进程A调用远程dll中的一个方法时,该方法又应该调用进程A中托管的WCF服务,调用方挂起,一分钟后,我得到一个服务超时。从未输入服务代码(从未到达在外部调用时被击中的断点)。
远程DLL
是
能够创建客户机代理类的实例会告诉我(如果我在这里是WRON,请纠正我),服务的配置至少在远程客户机中可用。它不会抱怨缺少配置信息,也不会像删除服务引用时在外部客户机中那样抛出异常。
所以我想我的问题是多方面的。首先,远程DLL能否首先调用WCF服务(即,客户端是否可以使用所有必需的基础结构)?如果可以,我可能会错过什么?如何调试类似的东西呢?当远程调试是一个简单的情况时,它是很痛苦的——而这并不是那么简单。
最后一件事-我不能改变这样一个事实:我正在远程处理dll,远程dll需要使用服务。它是这个应用程序基础设施中根深蒂固的一部分。但是,如果另一个进程有任何用途的话,我可以将大多数WCF服务主机托管到另一个进程(我可以在等待任何答案的同时尝试这样做)。