Example #1
0
 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();
   }
 }
Example #2
0
 /// <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();
   }
 }
Example #3
0
 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();
   }
 }