Я написал моно-совместимое приложение, которое отлично работает на компьютере под управлением Windows и в основном работает на моем Mac. Область, которая в настоящее время не работает, - это слой, который использует WCF (ChannelFactory) для связи между сервером и клиентом.Проблема Mono WCF на OSX
Проблема, как представляется, когда я пытаюсь открыть ChannelFactory на сервере, вот фрагмент кода:
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() - это просто зависла на мой мак. Создание конечной точки занимает намного больше времени, чем на моем ПК (около 3-4 секунд), но я могу жить с этим, если я могу заставить слой WCF функционировать.
Есть ли у кого-нибудь предложения о том, как продвигаться по этой проблеме?
Какая версия Mono? – TheNextman
mono --version возвращает 2.6.7 на моем mac. На момент написания это самый последний стабильный релиз. – Mattl
Просто записка для тех, кто читает это. Я исправил проблему с последней версией и быстрым рефактором кода. – Mattl