Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMSvcHost / System / ServiceModel / Activation / SMSvcHost.cs / 1 / SMSvcHost.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Activation { using System; using System.IO; using System.ServiceProcess; using System.Security.Principal; using Microsoft.Win32; using System.Threading; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.ServiceModel.Activation.Diagnostics; using System.ServiceModel; using System.ComponentModel; static class SMSvcHost { static TcpPortSharing netTcpPortSharing; static TcpActivation netTcpActivator; static NamedPipeActivation netPipeActivator; static MsmqActivation netMsmqActivator; static string listenerAdapterNativeLibrary; internal static bool IsTcpPortSharingPaused { get { return netTcpPortSharing.IsPaused; } } internal static bool IsTcpActivationPaused { get { return netTcpActivator.IsPaused; } } internal static bool IsNamedPipeActivationPaused { get { return netPipeActivator.IsPaused; } } internal static bool IsWebhostSupported { get { bool isWebhostSupported = false; using (RegistryKey localMachine = Registry.LocalMachine) { using (RegistryKey versionKey = localMachine.OpenSubKey(@"Software\Microsoft\InetSTP")) { if (versionKey != null) { object majorVersion = versionKey.GetValue("MajorVersion"); if (majorVersion != null && majorVersion.GetType().Equals(typeof(int))) { if ((int)majorVersion >= 7) { isWebhostSupported = File.Exists(ListenerAdapterNativeLibrary); } } } } } return isWebhostSupported; } } internal static string ListenerAdapterNativeLibrary { get { if (listenerAdapterNativeLibrary == null) { listenerAdapterNativeLibrary = Environment.SystemDirectory + "\\inetsrv\\wbhstipm.dll"; } return listenerAdapterNativeLibrary; } } static void Main(string[] args) { const string SeCreateGlobalPrivilege = "SeCreateGlobalPrivilege"; if (!OSEnvironmentHelper.IsVistaOrGreater) { try { Utility.KeepOnlyPrivilegeInProcess(SeCreateGlobalPrivilege); } catch (Win32Exception exception) { ListenerTraceUtility.EventLog.LogEvent(TraceEventType.Error, System.ServiceModel.Diagnostics.EventLogCategory.SharingService, System.ServiceModel.Diagnostics.EventLogEventId.ServiceStartFailed, false, exception.ToString()); throw; } } // Hook up with unhandled exceptions. AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; Listservices = new List (); netTcpPortSharing = new TcpPortSharing(); services.Add(netTcpPortSharing); // We always add the services that share the same process to the service table so // that we don't have to stop the existing services when installing new services. // NOTE: Do not add code that really depends on WAS and MSMQ to the constructors // of these services. if (OSEnvironmentHelper.IsVistaOrGreater) { MainIis7(services); } ServiceBase.Run(services.ToArray()); } static void MainIis7(List services) { netTcpActivator = new TcpActivation(); services.Add(netTcpActivator); netPipeActivator = new NamedPipeActivation(); services.Add(netPipeActivator); netMsmqActivator = new MsmqActivation(); services.Add(netMsmqActivator); } static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { Exception exception = e.ExceptionObject as Exception; ListenerTraceUtility.EventLog.LogEvent(TraceEventType.Error, System.ServiceModel.Diagnostics.EventLogCategory.SharingService, System.ServiceModel.Diagnostics.EventLogEventId.SharingUnhandledException, false, exception == null ? string.Empty : exception.ToString()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DragStartedEventArgs.cs
- BitmapEffectState.cs
- TextEndOfSegment.cs
- DbProviderManifest.cs
- SmtpDigestAuthenticationModule.cs
- OutputCacheProfile.cs
- SqlServer2KCompatibilityCheck.cs
- DesignerToolboxInfo.cs
- NotFiniteNumberException.cs
- TableSectionStyle.cs
- SourceFileBuildProvider.cs
- ChameleonKey.cs
- UnsafeCollabNativeMethods.cs
- ImportContext.cs
- BoundField.cs
- TypeDescriptionProviderAttribute.cs
- ControlCodeDomSerializer.cs
- MouseWheelEventArgs.cs
- PanelStyle.cs
- EnvelopedSignatureTransform.cs
- SQlBooleanStorage.cs
- Typography.cs
- SHA384Cng.cs
- ProviderMetadata.cs
- StreamUpdate.cs
- AdornerPresentationContext.cs
- LinqTreeNodeEvaluator.cs
- Preprocessor.cs
- Attribute.cs
- DesignerForm.cs
- WeakReferenceEnumerator.cs
- BehaviorService.cs
- UserNameSecurityToken.cs
- DbUpdateCommandTree.cs
- MimeParameterWriter.cs
- CodeTypeParameter.cs
- RtfNavigator.cs
- XamlFigureLengthSerializer.cs
- IISUnsafeMethods.cs
- UserControlParser.cs
- KnownTypes.cs
- DesignerPerfEventProvider.cs
- CompoundFileStorageReference.cs
- DataGridViewUtilities.cs
- ResourcesChangeInfo.cs
- NativeMethods.cs
- RepeaterItem.cs
- FieldBuilder.cs
- HatchBrush.cs
- ProcessThreadDesigner.cs
- DeleteIndexBinder.cs
- PeerOutputChannel.cs
- SafeTimerHandle.cs
- ComponentCommands.cs
- SimpleApplicationHost.cs
- ParameterBuilder.cs
- ModelFunctionTypeElement.cs
- BindingList.cs
- ValueUnavailableException.cs
- SplitterCancelEvent.cs
- InternalCache.cs
- VideoDrawing.cs
- SuppressIldasmAttribute.cs
- StateMachineHelpers.cs
- ProxyWebPartManager.cs
- Event.cs
- EntityContainerAssociationSetEnd.cs
- DataGridViewCellMouseEventArgs.cs
- XamlWriter.cs
- QueryOutputWriter.cs
- AnalyzedTree.cs
- TrackPoint.cs
- WebPartCollection.cs
- printdlgexmarshaler.cs
- ResourcePool.cs
- BindValidator.cs
- Int32RectConverter.cs
- SqlCachedBuffer.cs
- SqlTriggerContext.cs
- CommandValueSerializer.cs
- ComplexLine.cs
- DataGridBoolColumn.cs
- VisualStyleInformation.cs
- DataGridRelationshipRow.cs
- XmlEventCache.cs
- RowVisual.cs
- FullTextState.cs
- SettingsSavedEventArgs.cs
- TimeManager.cs
- SystemColors.cs
- InheritablePropertyChangeInfo.cs
- FigureParaClient.cs
- UnionCqlBlock.cs
- MethodInfo.cs
- PingOptions.cs
- DeclarativeCatalogPart.cs
- ColumnMapVisitor.cs
- DesignDataSource.cs
- ObjectDataSourceChooseTypePanel.cs
- Matrix3D.cs