| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- //-----------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //-----------------------------------------------------------------------------
- #pragma warning disable 1634, 1691
- namespace System.ServiceModel.ComIntegration
- {
- using System;
- using System.ServiceModel.Dispatcher;
- using System.ServiceModel.Description;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Runtime.Diagnostics;
- using System.Runtime.InteropServices;
- using System.ServiceModel;
- using System.ServiceModel.Configuration;
- using System.Diagnostics;
- using System.ServiceModel.Diagnostics;
-
- abstract class ComPlusServiceHost : ServiceHostBase
- {
- ServiceInfo info;
- protected void Initialize (Guid clsid,
- ServiceElement service,
- ComCatalogObject applicationObject,
- ComCatalogObject classObject,
- HostingMode hostingMode)
- {
- VerifyFunctionality();
-
- this.info = new ServiceInfo(clsid,
- service,
- applicationObject,
- classObject,
- hostingMode);
- base.InitializeDescription(new UriSchemeKeyedCollection());
- }
- protected override void ApplyConfiguration()
- {
-
- }
- protected override ServiceDescription CreateDescription(out IDictionary<string, ContractDescription> implementedContracts)
- {
- try
- {
- ComPlusServiceLoader loader = new ComPlusServiceLoader(this.info);
- ServiceDescription description = loader.Load(this);
- implementedContracts = null;
- return description;
- }
- catch (Exception e)
- {
- DiagnosticUtility.EventLog.LogEvent(TraceEventType.Error,
- (ushort)System.Runtime.Diagnostics.EventLogCategory.ComPlus,
- (uint)System.Runtime.Diagnostics.EventLogEventId.ComPlusServiceHostStartingServiceError,
- this.info.AppID.ToString(),
- this.info.Clsid.ToString(),
- e.ToString());
- throw;
- }
- }
- protected override void InitializeRuntime()
- {
- ComPlusServiceHostTrace.Trace(TraceEventType.Information, TraceCode.ComIntegrationServiceHostStartingService,
- SR.TraceCodeComIntegrationServiceHostStartingService, this.info);
- try
- {
- DispatcherBuilder dispatcherBuilder = new DispatcherBuilder();
- dispatcherBuilder.InitializeServiceHost(this.Description, this);
- }
- catch (Exception e)
- {
- if (System.ServiceModel.DiagnosticUtility.ShouldTraceError)
- {
- DiagnosticUtility.EventLog.LogEvent(TraceEventType.Error,
- (ushort)System.Runtime.Diagnostics.EventLogCategory.ComPlus,
- (uint)System.Runtime.Diagnostics.EventLogEventId.ComPlusServiceHostStartingServiceError,
- this.info.AppID.ToString(),
- this.info.Clsid.ToString(),
- e.ToString());
- }
- throw;
- }
- ComPlusServiceHostTrace.Trace(TraceEventType.Verbose, TraceCode.ComIntegrationServiceHostStartedServiceDetails,
- SR.TraceCodeComIntegrationServiceHostStartedServiceDetails, this.info, this.Description);
- ComPlusServiceHostTrace.Trace(TraceEventType.Information, TraceCode.ComIntegrationServiceHostStartedService,
- SR.TraceCodeComIntegrationServiceHostStartedService, this.info);
- }
- protected override void OnClose(TimeSpan timeout)
- {
- ComPlusServiceHostTrace.Trace(TraceEventType.Information, TraceCode.ComIntegrationServiceHostStoppingService,
- SR.TraceCodeComIntegrationServiceHostStoppingService, this.info);
- base.OnClose(timeout);
- ComPlusServiceHostTrace.Trace(TraceEventType.Information, TraceCode.ComIntegrationServiceHostStoppedService,
- SR.TraceCodeComIntegrationServiceHostStoppedService, this.info);
- }
- protected void VerifyFunctionality()
- {
- object serviceConfig = new CServiceConfig();
- IServiceSysTxnConfig sysTxnconfing = serviceConfig as IServiceSysTxnConfig;
- if (sysTxnconfing == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(System.ServiceModel.ComIntegration.Error.QFENotPresent());
- }
- }
- }
- }
|