private void Initialize(string path, IPrincipal user) { ServiceContainer = GlobalContainer.CreateChild(); this.Id = Guid.NewGuid(); this.User = user; var info = PathInfoBuilder.Build(path); if (info == null) { return; } this.ServiceUnitName = info.ServiceUnitName; this.Version = info.Version; this.Role = info.Role; this.Request = new ServiceUnitRequest(this, info); this.Configuration = ServiceConfigurationLoader.Load(info.ServiceUnitName, info.Version, info.Role); var logConfig = LogConfiguration.CreateLogAdapterSetting(this.Configuration.Raw); var logger = new Logger(info.ProcessPath, logConfig); IIdentity identity = (this.User != null) ? this.User.Identity : new GenericIdentity("Anonymous"); this.LogContext = new LogContext(logger, this.Id, identity); ServiceContainer.AddInstance(this); ServiceContainer.AddInstance(this.LogContext); ServiceContainer.AddInstance(this.Configuration); }