从远程DLL调用WCF服务

时间:2009-10-29 14:09:56

标签: .net wcf remoting

我有一个进程,我们称之为进程A,即托管通过基本Http绑定公开的简单WCF服务。如果我启动该过程,我可以从另一个进程B进程访问该服务,没有任何问题。

但是,我所需的用例并非如此简单。我需要做的是从使用Remoting托管的DLL访问服务。 Remoted DLL由进程A在单独的AppDomain中启动,它位于本地计算机上。

当我从进程A调用远程DLL中的一个方法时,它反过来应该回调到进程A中托管的WCF服务,调用者只是挂起,一分钟后我得到一个服务超时。永远不会输入服务代码(从外部调用它时遇到的断点)。

Remoted DLL 能够创建客户端代理类的实例这一事实告诉我(如果我在这里,请纠正我),该服务的配置至少可用于远程客户端。如果删除服务引用,它不会抱怨丢失配置信息或抛出异常,就像在外部客户端中一样。

所以我猜我的问题很多部分。首先,Remoted DLL可以首先调用WCF服务(即客户端可用的所有必需的基础架构)吗?如果可以的话,我可能会失踪什么?如何调试这样的事情呢?当它是一个简单的案例时,调试远程处理很痛苦 - 这并不是那么简单。

最后一件事 - 我无法改变这样一个事实,即我正处于远程处理DLL的过程中,并且远程DLL需要使用该服务。这是该应用程序基础架构的根深蒂固的一部分。但是,如果它有任何用处,我可以将大多数WCF服务托管到另一个进程(我可能会在这里等待任何答案时尝试这个)。

2 个答案:

答案 0 :(得分:0)

Remoted DLL能够创建客户端代理类的实例,这并不是说配置没问题。

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

因为你在同一台机器上,所以不应该有网络问题。

答案 1 :(得分:0)

最后我们完全删除了Remoting。这是一项更多的工作,但这是正确的事情。