public ApplicationBase(string AppName, string BaseDir, ApplicationServer server):base() { _Name=AppName; _BaseDirectory=BaseDir; AppServer=server; SecurityManager=server.SecurityManager; log = new ApplicationLog(_BaseDirectory + AppName + ".app.log"); log.WriteLine("System","Application Started"); _LogCategory.Name = _Name; EnterMethod(); try { SendValue("Application Name", AppName); SendValue("Base Directory", BaseDir); SendValue("Log file", _BaseDirectory + AppName + ".app.log"); SendString("App Started"); } catch(Exception E) { SendError(E); throw; } finally { ExitMethod(); } }
/// <summary> /// Create applications /// /// Publish specific instance via remoting. /// http://www.dotnetremoting.cc/FAQs/PUBLISHING_OBJECT.asp /// </summary> public ApplicationServer(int AdminPort, string ApplicationBaseDir, LogStringEvent logstringevent):base() { EnterMethod(); try { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandler); if (logstringevent != null) { OnLog += logstringevent; } Applications=new ApplicationCollection(); LogString("{0}: {1}", GetType().Assembly.GetName().Name, GetType().Assembly.GetName().Version.ToString()); LogString("Publishing server objects on port {0}",AdminPort); AdminChannel = new TcpChannel( AdminPort ); ChannelServices.RegisterChannel( AdminChannel ); _ServerEnvironment=new ServerEnvironment(); string path=@"users"+Path.DirectorySeparatorChar.ToString (); byte[] Key=new byte[8] { 5,100,5,2,4,24,34,55 }; byte[] IV=new byte[8] { 5,100,5,2,4,24,34,55}; SecurityManager=new SecurityManager(new EncryptedFileStorage(path,Key,IV)); RemotingServices.Marshal(this,"Mono.AppServer.ApplicationServer"); AvailableApplicationTypes=(ApplicationType[]) ConfigurationSettings.GetConfig("Mono.AppServer"); DirectoryInfo curdir=new DirectoryInfo(ApplicationBaseDir); this.ApplicationsBaseDir=curdir.FullName+Path.DirectorySeparatorChar; LogString("\nHosting applications in {0}",Path.GetFullPath(ApplicationBaseDir)); foreach (DirectoryInfo dir in curdir.GetDirectories()) { try { LoadApplication(dir); } catch (Exception e) { SendError(e); LogString("ERROR: " + e.Message); } } } catch(Exception E) { SendError(E); throw; } finally { ExitMethod(); } }
public virtual void Configure(ApplicationServer server, DirectoryInfo BaseDir, XmlDocument ConfigFile) { if (Boolean.Parse(ReadAppSetting(ConfigFile, "Debug", "false"))) { TerWoord.Diagnostics.Destinations.FileDestination TempDest = new TerWoord.Diagnostics.Destinations.FileDestination(); TempDest.LogDirectory = Path.Combine(BaseDir.FullName, "detaillogs"); TempDest.Initialize(); _LogCategory.Destins.Add(TempDest); } EnterMethod(); try { this.AppServer=server; this._BaseDirectory=BaseDir.FullName; SendValue("Base Directory", _BaseDirectory); _Name=ReadAppSetting(ConfigFile,"Application.Name",BaseDir.Name); SendValue("Name", _Name); AppServer=server; SecurityManager=server.SecurityManager; log=new ApplicationLog(_BaseDirectory + Path.DirectorySeparatorChar + "app.log"); SendValue("Log file", _BaseDirectory + Path.DirectorySeparatorChar + "app.log"); log.WriteLine("System","Application Started"); SendString("Application Started"); // Load Roles from Conig File XmlNodeList RoleList=ConfigFile.SelectNodes("/configuration/publishedRoles/role"); if (RoleList.Count!=0) { Roles=new string[RoleList.Count]; int i=0; foreach (XmlElement roleElement in RoleList) { Roles[i]=roleElement.InnerText; i++; } } SendValue("Roles", Roles); } catch(Exception E) { SendError(E); throw; } finally { ExitMethod(); } }