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
- DataColumnPropertyDescriptor.cs
- Form.cs
- ResetableIterator.cs
- XmlCustomFormatter.cs
- NonBatchDirectoryCompiler.cs
- LicenseManager.cs
- RootBrowserWindow.cs
- Renderer.cs
- localization.cs
- ToolboxDataAttribute.cs
- SharedUtils.cs
- PreviewPageInfo.cs
- HierarchicalDataSourceControl.cs
- ApplicationProxyInternal.cs
- TextTreeUndo.cs
- WebBrowserPermission.cs
- FontWeight.cs
- BinaryNode.cs
- UnsafeNativeMethods.cs
- TemplateColumn.cs
- ItemCollection.cs
- SchemaNamespaceManager.cs
- ViewgenGatekeeper.cs
- DataBindingExpressionBuilder.cs
- ElementProxy.cs
- ReadOnlyTernaryTree.cs
- MenuItemAutomationPeer.cs
- HtmlAnchor.cs
- ExpressionsCollectionConverter.cs
- StorageMappingFragment.cs
- DynamicDocumentPaginator.cs
- SimpleType.cs
- DocumentViewer.cs
- _ListenerAsyncResult.cs
- CustomAttributeSerializer.cs
- FixUpCollection.cs
- WindowsRebar.cs
- WindowsRegion.cs
- EventDescriptorCollection.cs
- RemoteWebConfigurationHostServer.cs
- Stylesheet.cs
- TextRangeEdit.cs
- ExpressionList.cs
- LoginView.cs
- HttpException.cs
- Control.cs
- DataSourceXmlSerializationAttribute.cs
- UInt64.cs
- AnnotationMap.cs
- MissingManifestResourceException.cs
- MarkupWriter.cs
- SafeRegistryHandle.cs
- ReferenceConverter.cs
- DashStyle.cs
- LogLogRecord.cs
- Button.cs
- NonVisualControlAttribute.cs
- EmissiveMaterial.cs
- CredentialCache.cs
- EDesignUtil.cs
- TransactionScope.cs
- MoveSizeWinEventHandler.cs
- ActiveXMessageFormatter.cs
- UrlMappingCollection.cs
- XmlQueryOutput.cs
- SafeMarshalContext.cs
- SafeUserTokenHandle.cs
- TextServicesCompartmentEventSink.cs
- TransmissionStrategy.cs
- RuntimeResourceSet.cs
- AudienceUriMode.cs
- HttpRuntime.cs
- ItemMap.cs
- StringConcat.cs
- BitStack.cs
- TreeNodeBinding.cs
- FontWeight.cs
- loginstatus.cs
- ReadOnlyHierarchicalDataSourceView.cs
- EntitySet.cs
- MethodRental.cs
- ReadContentAsBinaryHelper.cs
- GetMemberBinder.cs
- AssemblySettingAttributes.cs
- SmiContext.cs
- HGlobalSafeHandle.cs
- ConnectionProviderAttribute.cs
- DateTimeConverter2.cs
- FastPropertyAccessor.cs
- ComponentResourceKey.cs
- OleDbConnectionFactory.cs
- documentsequencetextcontainer.cs
- WebPartZoneCollection.cs
- PropertyDescriptorComparer.cs
- XmlSchemaObjectCollection.cs
- Enum.cs
- XmlIgnoreAttribute.cs
- SecurityBindingElement.cs
- BlobPersonalizationState.cs
- BooleanExpr.cs