2012-07-04 45 views
0

我是單聲道新手,但需要查看運行我們的現有.NET客戶端應用程序,使用mono,Linux,Android和/或MacOS。Mono WCF IClientChannel問題

服務器/客戶端與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機器上運行單聲道命令提示符)並關閉服務器時,事件似乎沒有通過客戶端。

我錯過了什麼嗎?單聲道IClientChannel接口是否存在常見問題?對服務器的調用與回調一樣工作,但我只是遇到了IClientChannel的一些問題。

在此先感謝您的幫助!

回答

0

在Mono中有bug #4511DuplexChannelFactory相關,因此無法將頻道投射到IClientChannel。我上週解決了這個問題,但可能還有其他問題。

如果您仍然遇到問題,可否請您提交一份包含測試用例的錯誤報告?