Ich habe eine mono-kompatible Anwendung geschrieben, die auf einem Windows-Rechner funktioniert und meistens auf meinem Mac funktioniert. Der Bereich, der derzeit nicht funktioniert, ist der Layer, der WCF (ChannelFactory) für die Kommunikation zwischen Server und Client verwendet.Mono WCF Ausgabe auf OSX
Das Problem zu sein scheint, wenn ich versuche, und öffnen Sie den Channel auf dem Server, hier ist ein Code-Schnipsel:
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();
Das Problem mit dem .Open() -Aufruf ist - es scheint nur zu hängen mein Mac. Das Erstellen des Endpunkts dauert viel länger als auf meinem PC (etwa 3-4 Sekunden), aber ich kann damit leben, wenn ich die WCF-Schicht funktionieren lassen kann.
Hat jemand Vorschläge, wie Sie mit diesem Problem fortfahren können?
Welche Version von Mono? – TheNextman
mono - version gibt 2.6.7 auf meinem mac zurück. Zum Zeitpunkt des Schreibens ist dies die letzte stabile Veröffentlichung. – Mattl
Nur eine Anmerkung für jeden, der dies liest. Ich habe das Problem mit der neuesten Version und einem schnellen Refactor des Codes behoben. – Mattl