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
- InputProcessorProfiles.cs
- COMException.cs
- TableLayoutColumnStyleCollection.cs
- DataGrid.cs
- ByteStreamMessage.cs
- JournalEntryListConverter.cs
- BufferedReadStream.cs
- ServerValidateEventArgs.cs
- ProviderConnectionPoint.cs
- CommonGetThemePartSize.cs
- ConfigurationLocation.cs
- MD5Cng.cs
- PropertyEmitterBase.cs
- nulltextnavigator.cs
- BmpBitmapEncoder.cs
- HttpResponseInternalWrapper.cs
- SelectionPatternIdentifiers.cs
- ErrorReporting.cs
- BaseCollection.cs
- EntityContainerEmitter.cs
- CacheHelper.cs
- DefaultSettingsSection.cs
- KeysConverter.cs
- BamlResourceContent.cs
- ConfigDefinitionUpdates.cs
- DeviceSpecificChoiceCollection.cs
- HttpPostProtocolReflector.cs
- SecurityKeyIdentifierClause.cs
- DataGridViewRowsRemovedEventArgs.cs
- PageContentAsyncResult.cs
- FormViewUpdateEventArgs.cs
- ListenerElementsCollection.cs
- EntityDataSourceValidationException.cs
- GridViewColumnHeader.cs
- OdbcDataReader.cs
- DataListCommandEventArgs.cs
- ForceCopyBuildProvider.cs
- ProcessHostServerConfig.cs
- TrackingServices.cs
- Base64Decoder.cs
- StatusBarPanelClickEvent.cs
- SchemaImporterExtension.cs
- IndexOutOfRangeException.cs
- HyperLink.cs
- Vector3D.cs
- QualificationDataAttribute.cs
- ReceiveContent.cs
- VectorAnimation.cs
- DbgUtil.cs
- ImageAnimator.cs
- DrawingGroup.cs
- recordstatescratchpad.cs
- SoapInteropTypes.cs
- SettingsSection.cs
- RowTypePropertyElement.cs
- DesignTimeTemplateParser.cs
- WorkflowDefinitionContext.cs
- FormViewRow.cs
- XmlCollation.cs
- SqlCharStream.cs
- DetailsViewPageEventArgs.cs
- SqlParameter.cs
- OperationFormatStyle.cs
- UnaryQueryOperator.cs
- DoWorkEventArgs.cs
- WebHttpElement.cs
- PersonalizationStateInfoCollection.cs
- RtfNavigator.cs
- QueryExpression.cs
- ServiceModelActivity.cs
- PointCollectionValueSerializer.cs
- SettingsPropertyWrongTypeException.cs
- ELinqQueryState.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- Container.cs
- SignerInfo.cs
- WindowsGrip.cs
- UserControlBuildProvider.cs
- SecurityUtils.cs
- SerializationIncompleteException.cs
- DelegateHelpers.cs
- Input.cs
- DiagnosticsElement.cs
- SessionStateSection.cs
- ConnectionOrientedTransportElement.cs
- Quad.cs
- SchemaDeclBase.cs
- DbRetry.cs
- PrintController.cs
- _SslState.cs
- ActiveDocumentEvent.cs
- InstancePersistenceContext.cs
- XmlTextReader.cs
- ApplicationTrust.cs
- QilBinary.cs
- LinearKeyFrames.cs
- DataFieldConverter.cs
- Vector3D.cs
- ReadOnlyActivityGlyph.cs