Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / Msmq.cs / 1 / Msmq.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Threading; using System.Net.Security; internal static class Msmq { static Version longhornVersion = new Version(4, 0); static Version version; static bool activeDirectoryEnabled; static object xpSendLock = null; static UriPrefixTabletransportManagerTable = new UriPrefixTable (); static object staticLock = new object(); static SafeLibraryHandle errorStrings = null; static Msmq() { MsmqQueue.GetMsmqInformation(ref version, ref activeDirectoryEnabled); MsmqDiagnostics.MsmqDetected(version); Version osVersion = System.Environment.OSVersion.Version; if (osVersion.Major == 5 && osVersion.Minor == 1) xpSendLock = new object(); } internal static bool ActiveDirectoryEnabled { get { return activeDirectoryEnabled; } } internal static Version Version { get { return version; } } internal static bool IsPerAppDeadLetterQueueSupported { get { return Msmq.Version >= longhornVersion; } } internal static bool IsAdvancedPoisonHandlingSupported { get { return Msmq.Version >= longhornVersion; } } internal static bool IsRejectMessageSupported { get { return Msmq.Version >= longhornVersion; } } internal static UriPrefixTable StaticTransportManagerTable { get { return transportManagerTable; } } internal static IPoisonHandlingStrategy CreatePoisonHandler(MsmqReceiveHelper receiver) { if (receiver.Transactional) { if (Msmq.Version < longhornVersion) { return new Msmq3PoisonHandler(receiver); } else { if (receiver.ListenUri.AbsoluteUri.Contains(";")) return new Msmq4SubqueuePoisonHandler(receiver); else return new Msmq4PoisonHandler(receiver); } } else { return new MsmqNonTransactedPoisonHandler(receiver); } } internal static SafeLibraryHandle ErrorStrings { get { if (null == errorStrings) { lock (staticLock) { if (null == errorStrings) { #pragma warning suppress 56523 // Callers (there is only one) handle an invalid handle returned from here. errorStrings = UnsafeNativeMethods.LoadLibrary("MQUTIL.DLL"); } } } return errorStrings; } } internal static void EnterXPSendLock(out bool lockHeld, ProtectionLevel protectionLevel) { lockHeld = false; if (null != xpSendLock && (ProtectionLevel.None != protectionLevel)) { try { } finally { Monitor.Enter(xpSendLock); lockHeld = true; } } } internal static void LeaveXPSendLock() { Monitor.Exit(xpSendLock); } } } // 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
- CompilerState.cs
- SocketInformation.cs
- QilXmlReader.cs
- EditorZoneDesigner.cs
- WebBrowserContainer.cs
- ScriptResourceAttribute.cs
- Rotation3D.cs
- StringBlob.cs
- TextViewBase.cs
- configsystem.cs
- XmlSchemaParticle.cs
- ListControlConvertEventArgs.cs
- AuthenticationModuleElementCollection.cs
- MobileCapabilities.cs
- Walker.cs
- XmlNamespaceDeclarationsAttribute.cs
- AuthenticationModuleElementCollection.cs
- ArgumentNullException.cs
- CodeDOMUtility.cs
- FormsAuthenticationUser.cs
- DynamicRenderer.cs
- BindingContext.cs
- Int16Storage.cs
- PresentationUIStyleResources.cs
- ProxyHwnd.cs
- RedBlackList.cs
- EntityWithChangeTrackerStrategy.cs
- ProcessThread.cs
- ApplicationProxyInternal.cs
- GenericXmlSecurityToken.cs
- PartialTrustVisibleAssembliesSection.cs
- InvalidFilterCriteriaException.cs
- AbstractSvcMapFileLoader.cs
- PathFigureCollectionValueSerializer.cs
- ToolboxSnapDragDropEventArgs.cs
- InkCanvas.cs
- FixedPage.cs
- codemethodreferenceexpression.cs
- HealthMonitoringSectionHelper.cs
- MaterialGroup.cs
- ArgumentReference.cs
- TemplatedControlDesigner.cs
- BitmapEffectGroup.cs
- CLSCompliantAttribute.cs
- Model3DGroup.cs
- DateTimeUtil.cs
- WebPartVerbsEventArgs.cs
- LocalBuilder.cs
- MenuAutomationPeer.cs
- CodeIdentifiers.cs
- AuthenticationException.cs
- InputReport.cs
- DesignerActionPanel.cs
- FixedSOMLineRanges.cs
- ListBoxChrome.cs
- SettingsPropertyIsReadOnlyException.cs
- EdmProperty.cs
- DeviceContexts.cs
- Int16Converter.cs
- TreeViewImageIndexConverter.cs
- EventSinkHelperWriter.cs
- XmlDataProvider.cs
- SessionPageStateSection.cs
- GeometryModel3D.cs
- LayoutEvent.cs
- TemplateControlBuildProvider.cs
- QueryOperator.cs
- CustomAttribute.cs
- Enum.cs
- FocusTracker.cs
- DataGridViewAutoSizeModeEventArgs.cs
- PolicyVersion.cs
- CacheAxisQuery.cs
- CalendarDesigner.cs
- OletxCommittableTransaction.cs
- EventArgs.cs
- RegisteredArrayDeclaration.cs
- ColorMatrix.cs
- ScriptControlDescriptor.cs
- Directory.cs
- AliasExpr.cs
- WebProxyScriptElement.cs
- BitmapScalingModeValidation.cs
- HelpHtmlBuilder.cs
- SqlWorkflowInstanceStoreLock.cs
- TextTreeInsertUndoUnit.cs
- VisualTreeHelper.cs
- EncryptedType.cs
- IApplicationTrustManager.cs
- WebPartRestoreVerb.cs
- AuthenticatedStream.cs
- StringBuilder.cs
- CatalogZone.cs
- OneToOneMappingSerializer.cs
- Match.cs
- SplineQuaternionKeyFrame.cs
- PasswordRecovery.cs
- DataGridItemEventArgs.cs
- ListDictionary.cs
- StringOutput.cs