【发布时间】:2011-01-07 22:15:52
【问题描述】:
我编写了一个兼容单声道的应用程序,该应用程序在 Windows 机器上运行良好,并且主要在我的 Mac 上运行。当前不工作的领域是使用WCF(ChannelFactory)在服务器和客户端之间进行通信的层。
问题似乎是当我尝试在服务器上打开 ChannelFactory 时,这里是一个代码 sn-p:
string address = "21"; // added this for simplicity in conveying the problem...
string server_address = "net.tcp://192.168.1.122:4505/DeviceServer/";
string serviceAddress = string.Format(server_address, address);
ThreadedServiceHost<DeviceService, IDeviceContract> DeviceHost =
new ThreadedServiceHost<DeviceService, IDeviceContract>(serviceAddress, address, new NetTcpBinding());
EndpointAddress endPoint = new EndpointAddress(
new Uri(string.Format(serviceaddress, address) + address));
System.ServiceModel.Channels.Binding binding = new NetTcpBinding();
teeGlobal.ServerDeviceFactory = new ChannelFactory<IDeviceChannel>(binding, endPoint);
teeGlobal.ServerDeviceFactory.Open();
问题在于 .Open() 调用 - 它似乎只是挂在我的 Mac 上。创建端点比在我的 PC 上创建的时间要长得多(大约 3-4 秒),但如果我可以让 WCF 层正常工作,我可以忍受。
有人对如何解决这个问题有任何建议吗?
【问题讨论】:
-
mono --version 在我的 Mac 上返回 2.6.7。在撰写本文时,这是最新的稳定版本。
-
只是给任何阅读本文的人的注释。我用最新版本和快速重构代码解决了这个问题。