由ChannelFactory生命周期创建的WCF对象



我在WCF上遵循这个教程,一切都很好。似乎与这个简单的代码,我应该能够调用任何类型的方法从我的客户端到服务器。我只对管道感兴趣,对网络一点也不感兴趣。

我记得在某个地方读到过这些从服务器返回的对象,比如下面代码中的pipeProxy:

IStringReverser pipeProxy = pipeFactory.CreateChannel();

将只持续5分钟,然后被处理或最终处理或类似的事情。这是真的吗?每次我想调用服务器的一个方法时,我必须调用我的ChannelFactoryCreateChannel吗?另外,我可以保留我的ChannelFactory实例,还是它也会在一段时间后自杀?

我找不到太多关于这些细节的信息,我找到的是大量的高级教程,主要讨论的是我不关心的东西,比如http和网络。我想要的只是在同一台机器上的两个应用程序之间有一个基本的通信。我所需要的就是能够从应用程序a调用一个方法到应用程序B。

所以有什么陷阱我应该害怕或代码张贴在链接教程足够吗?我是否可以只使用教程中的代码,并简单地向示例类添加方法,然后一切都会顺利进行?或者还有什么我需要知道的吗?

您可以保留您的ChannelFactory,实际上您应该这样做,因为创建一个ChannelFactory非常昂贵。

另一方面,创建新的通道不是一个昂贵的操作,您可以在每次需要进行(或重试)调用时创建新的通道。

我没有找到5分钟的参考,所以我猜教程的意思是,如果你保持连接打开超过5分钟,那么它将超时。如果您想在两个应用程序之间始终保持连接打开,我建议查看DuplexChannels,而不是

最新更新