public ACA.LabelX.RemoteObject GetRemoteObject() { EnsureStartIsCalled(); ACA.LabelX.RemoteObject obj = (ACA.LabelX.RemoteObject)Activator.GetObject(typeof(ACA.LabelX.RemoteObject), ServerURL); if (obj == null) { throw new RemotingException("Cannot get the remote object."); } return(obj); }
public void Start(string ConfigFilePath) { const bool methode1 = true; Hashtable Props; //IChannel ServiceChannel; string Protocol; string Address; string Port; string Uri; TcpServerChannel theTcp; if (methode1) { this.ConfigFilePath = ConfigFilePath; RemotingConfiguration.Configure(ConfigFilePath, false); Toolbox.Toolbox toolbox = new Toolbox.Toolbox(); toolbox.GetRemotingServerConfiguraton(ConfigFilePath, out Protocol, out Address, out Port, out Uri); string sipnr = GlobalDataStore.GetAppSetting("localhost"); Address = sipnr; string ClientURL = string.Format("{0}://{1}:{2}/{3}", Protocol, Address, Port, Uri); ACA.LabelX.RemoteObject objLabelXRemoteObject = (ACA.LabelX.RemoteObject)Activator.GetObject( typeof(ACA.LabelX.RemoteObject), ClientURL); if (objLabelXRemoteObject != null) { toolbox.GetGeneralServerConfiguraton(ConfigFilePath, out PrintJobsRootFolder, out LabelDefinitionsRootFolder, out PaperDefinitionsRootFolder, out SettingsRootFolder, out PictureRootFolder, out UpdateRootFolder); objLabelXRemoteObject.InitServer(PrintJobsRootFolder, LabelDefinitionsRootFolder, PaperDefinitionsRootFolder, SettingsRootFolder, UpdateRootFolder); } } else { this.ConfigFilePath = ConfigFilePath; //RemotingConfiguration.Configure(ConfigFilePath, false); Props = new Hashtable(); Toolbox.Toolbox toolbox = new Toolbox.Toolbox(); toolbox.GetRemotingServerConfiguraton(ConfigFilePath, out Protocol, out Address, out Port, out Uri); HttpChannel theHttp2; Hashtable myTable = new Hashtable(); SoapServerFormatterSinkProvider theProvider = new SoapServerFormatterSinkProvider(); //BinaryServerFormatterSinkProvider theProvider = new BinaryServerFormatterSinkProvider(); //theProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full; ClientIPInjectorSinkProvider injectorProvider; injectorProvider = new ClientIPInjectorSinkProvider(); //BinaryClientFormatterSinkProvider theClientProv = new BinaryClientFormatterSinkProvider(); //Props["port"] = "8080"; Props["port"] = "18080"; Props["name"] = "ACALabelXRemoteObject"; //Props["address"] = "localhost"; Props["address"] = "127.0.0.1"; theProvider.Next = injectorProvider; //theProvider.Next = new ClientIPInjectorSinkProvider(); switch (Protocol.ToLower()) { case "http": myTable["name"] = "serversite"; theHttp2 = new HttpChannel(Props, null, theProvider); ChannelServices.RegisterChannel(theHttp2, false); break; case "tcp": myTable["name"] = "serversite"; theTcp = new TcpServerChannel(myTable, theProvider); ChannelServices.RegisterChannel(theTcp, false); break; default: throw new ApplicationException(string.Format("Could not obtain the correct protocol from: {0}\r\nFound protocol: {1}\r\nShould be: http, or tcp", ConfigFilePath, Protocol)); } RemoteObject theObject = new RemoteObject(); RemotingConfiguration.RegisterWellKnownServiceType(typeof(ACA.LabelX.RemoteObject), "ACALabelXRemoteObject", WellKnownObjectMode.Singleton); //Address = "localhost"; Address = "127.0.0.1"; string ClientURL = string.Format("{0}://{1}:{2}/{3}", Protocol, Address, Port, Uri); ACA.LabelX.RemoteObject objLabelXRemoteObject = (ACA.LabelX.RemoteObject)Activator.GetObject( typeof(ACA.LabelX.RemoteObject), ClientURL); if (objLabelXRemoteObject != null) { toolbox.GetGeneralServerConfiguraton(ConfigFilePath, out PrintJobsRootFolder, out LabelDefinitionsRootFolder, out PaperDefinitionsRootFolder, out SettingsRootFolder, out PictureRootFolder, out UpdateRootFolder); objLabelXRemoteObject.InitServer(PrintJobsRootFolder, LabelDefinitionsRootFolder, PaperDefinitionsRootFolder, SettingsRootFolder, UpdateRootFolder); } } }