// throw Exceptions if there is not correct params // add support for ralaitive part and // TODO check the COM.Connector params definitions private void CheckConnection(Dictionary <string, string> _parameters) { if (!_parameters.ContainsKey("Name")) { throw new Exception("Connection must contain attribute Name"); } if (_parameters.ContainsKey("File")) { string _tempCurentDirectory = System.IO.Directory.GetCurrentDirectory(); System.IO.Directory.SetCurrentDirectory(OneCService2.GetBinPath()); DirectoryInfo _connectionDir = new DirectoryInfo(_parameters["File"]); System.IO.Directory.SetCurrentDirectory(_tempCurentDirectory); if (!_connectionDir.Exists) { throw new Exception("Directory " + _connectionDir.FullName + " does not exist"); } _parameters["File"] = _connectionDir.FullName; // поддержка относительных путей } }
protected override void OnStart(string[] args) { SimpleLogger.CreateDefaultLogger(OneCService2.GetBinPath() + @"\out.log"); try { string host = Config.ServiceConfig.Host; int port = Config.ServiceConfig.Port; SimpleLogger.DefaultLogger.Info("Starting OneCService2: host=" + host + " port=" + port); SimpleLogger.DefaultLogger.Info("Working directory: " + new System.IO.DirectoryInfo(".").FullName); SimpleLogger.DefaultLogger.Info("Bin directory: " + OneCService2.GetBinPath()); ConnectionPool.PoolsPrepare(SimpleLogger.DefaultLogger); ConnectionPool.PoolsInit(SimpleLogger.DefaultLogger); serviceHost = OneCWebService2.CreateServiceHost(host, port); serviceHost.Open(); } catch (Exception _e) { SimpleLogger.DefaultLogger.Severe(_e.ToString()); } }