IClientChannel的单声道WCF问题

时间:2012-07-04 12:52:12

标签: wcf mono

我是单声道新手,但有人被要求调查使用mono for Linux,Android和/或MacOS运行我们现有的.NET客户端应用程序。

服务器/客户端使用与NetTcpBinding的WCF双工通信。我已经创建了一个精心设计的客户端版本,试图分析与服务器连接的哪些基本原理将以单声道工作(我正在运行mono v2.10.8)。

我遇到的第一个问题是对IClientChannel的强制转换。客户端上的factory.CreateChannel结果给出了InvalidCastException。但我设法通过创建实现服务契约和IClientChannel

的帮助程序接口来解决这个问题

public interface IMySessionChannel : IMySession, IClientChannel {}

...并在我的ChannelFactory中使用它

_factory = new DuplexChannelFactory<IMySessionChannel>(....)

但我仍然有一点问题。我为IClientChannel的Closing,Closed和Faulted事件添加了事件处理程序,它们在接收事件时在客户端向屏幕写入消息。

在Windows上一切正常,但是当以单声道运行客户端(仍然在Windows机器上运行mono命令提示符)并关闭服务器时,事件似乎没有通过客户端。

我错过了什么吗?单声道IClientChannel接口是否存在一般问题?对服务器的调用和回调一样,但我只是遇到IClientChannel的问题。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Mono中DuplexChannelFactoryIClientChannel相关,阻止了频道投放到{{1}}。我上周解决了这个问题,但可能存在其他问题。

如果您仍然遇到问题,请提交一份包含测试用例的错误报告吗?