我是單聲道新手,但需要查看運行我們的現有.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的一些問題。
在此先感謝您的幫助!