/// <summary> /// Starts the client environment instance and /// etablishes a connection to the Zyan service. /// </summary> /// <seealso cref="ClientEnvironment.Start"/> public override void Start() { var serverAddress = remoteAddress ?? ZyanConstants.DefaultServerName; var name = Artefacts.ServiceConstants.ZyanServicePrefix + serviceName; var url = String.Format("{0}://{1}:{2}/{3}", ZyanConstants.DefaultServiceProtocol, serverAddress, ZyanConstants.DefaultServicePort, name); var connection = new ZyanConnection(url, ZyanConstants.GetDefaultClientProtocol()); var queryHandler = new ZyanClientQueryHandler(connection); queryHandler.Connect(); QueryHandler = queryHandler; }
public override void Publish() { // Create the QueryHandler IQueryHandler queryHandler = new ZyanObjectQueryHandler(ObjectSource); #region Start the WCF server #if !MONO var wcfServer = new ServerQueryWcfHandler(queryHandler); var binding = ServiceHelper.GetDefaultBinding(); string serviceUri = ServiceHelper.GetServiceUri(null, null, Artefacts.ServiceConstants.ObjectsServiceName); wcfServer.Start(binding, serviceUri); #endif #endregion #region Start the Zyan server // change service name to avoid conflict with Remoting service var serviceName = Artefacts.ServiceConstants.ZyanServicePrefix + Artefacts.ServiceConstants.ObjectsServiceName; var protocol = ZyanConstants.GetDefaultServerProtocol(ZyanConstants.DefaultServicePort); var host = new ZyanComponentHost(serviceName, protocol); host.RegisterQueryHandler(queryHandler); #endregion #region Start the remoting server var remotingServer = new ServerQueryRemotingHandlerObjects(queryHandler); // Register default channel for remote access Hashtable properties = new Hashtable(); properties["name"] = Artefacts.ServiceConstants.ObjectsServiceName; properties["port"] = Artefacts.ServiceConstants.ObjectsPort; IChannel currentChannel = RemotingConstants.GetDefaultChannel(properties); ChannelServices.RegisterChannel(currentChannel, false); remotingServer.Start(Artefacts.ServiceConstants.ObjectsServiceName, false); #endregion }