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
- XmlSyndicationContent.cs
- ActiveDocumentEvent.cs
- DrawingGroupDrawingContext.cs
- FeatureSupport.cs
- ThicknessAnimationBase.cs
- SimpleLine.cs
- UpdateProgress.cs
- ValidationVisibilityAttribute.cs
- XsltSettings.cs
- TypedElement.cs
- Int32Rect.cs
- DataColumn.cs
- ContentPathSegment.cs
- TraceUtility.cs
- XamlClipboardData.cs
- CmsInterop.cs
- EmptyReadOnlyDictionaryInternal.cs
- MiniModule.cs
- FlowDocumentView.cs
- TileBrush.cs
- SafeSystemMetrics.cs
- ComAwareEventInfo.cs
- MouseDevice.cs
- TranslateTransform3D.cs
- DisposableCollectionWrapper.cs
- DocumentSignatureManager.cs
- NumericUpDownAcceleration.cs
- DeploymentExceptionMapper.cs
- WindowShowOrOpenTracker.cs
- PathStreamGeometryContext.cs
- CursorConverter.cs
- BufferModeSettings.cs
- ContentElementCollection.cs
- NumericPagerField.cs
- ProcessProtocolHandler.cs
- EntityDataSourceDataSelectionPanel.cs
- CodeVariableReferenceExpression.cs
- StorageEndPropertyMapping.cs
- WindowsEditBoxRange.cs
- DesignerOptionService.cs
- XXXInfos.cs
- DiscoveryReference.cs
- SizeValueSerializer.cs
- AlgoModule.cs
- DataSourceProvider.cs
- ParameterReplacerVisitor.cs
- KeyGesture.cs
- PolyLineSegmentFigureLogic.cs
- XsltInput.cs
- SHA384Managed.cs
- SelectionItemPattern.cs
- CodeValidator.cs
- BinHexEncoding.cs
- ThreadAttributes.cs
- DBSqlParserColumnCollection.cs
- ItemContainerGenerator.cs
- Int16Animation.cs
- StrongNameKeyPair.cs
- ApplicationCommands.cs
- PermissionSet.cs
- ValidationPropertyAttribute.cs
- MenuItemCollection.cs
- SettingsBase.cs
- DataAdapter.cs
- PrimarySelectionGlyph.cs
- Point3DCollectionValueSerializer.cs
- RawStylusInputCustomData.cs
- ApplicationId.cs
- SafeBitVector32.cs
- OrderedHashRepartitionEnumerator.cs
- DbRetry.cs
- SafeLibraryHandle.cs
- WindowsUpDown.cs
- ServicePointManagerElement.cs
- TextBoxDesigner.cs
- DateTimeConstantAttribute.cs
- BaseDataList.cs
- RowVisual.cs
- QueryableFilterRepeater.cs
- RowType.cs
- TableLayoutRowStyleCollection.cs
- ValidationError.cs
- IPipelineRuntime.cs
- BaseDataList.cs
- AmbientProperties.cs
- StringValidatorAttribute.cs
- UIPermission.cs
- Utils.cs
- SafeRegistryHandle.cs
- Exceptions.cs
- InvokeHandlers.cs
- ServiceHttpModule.cs
- TypeSource.cs
- WindowsTokenRoleProvider.cs
- Container.cs
- HwndStylusInputProvider.cs
- DataBinder.cs
- ClearTypeHintValidation.cs
- XmlMessageFormatter.cs
- GridEntry.cs