Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / Faults.cs / 1 / Faults.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Implement the fault codes defined in WS-Coor, WS-AT and .NET-AT using System; using System.Globalization; using System.ServiceModel; using System.Transactions; using System.Xml; using System.ServiceModel.Security; using System.ServiceModel.Channels; using Microsoft.Transactions.Wsat.Protocol; using Microsoft.Transactions.Bridge; namespace Microsoft.Transactions.Wsat.Messaging { class Fault { string action; FaultCode code; string reasonText; FaultReason reason; public Fault(string action, FaultCode code, string reasonText) { this.action = action; this.code = code; this.reasonText = reasonText; this.reason = new FaultReason(reasonText, CultureInfo.CurrentCulture); } public string Action { get { return this.action; } } public FaultCode Code { get { return this.code; } } public string ReasonText { get { return this.reasonText; } } public FaultReason Reason { get { return this.reason; } } } abstract class Faults { protected CoordinationStrings coordinationStrings; protected AtomicTransactionStrings atomicTransactionStrings; // WS-COOR protected Fault invalidState; protected Fault invalidProtocol; protected Fault invalidParameters; // WS-AT protected Fault inconsistentInternalState; // .NET-AT protected Fault invalidPolicy; public static readonly FaultCode CoordinatorRegistrationFailedCode = new FaultCode(DotNetAtomicTransactionExternalStrings.CoordinatorRegistrationFailed, DotNetAtomicTransactionExternalStrings.Namespace); protected Faults(ProtocolVersion protocolVersion) { this.coordinationStrings = CoordinationStrings.Version(protocolVersion); this.atomicTransactionStrings = AtomicTransactionStrings.Version(protocolVersion); // // WS-Coordination // string invalidStateReason = SR.GetString(SR.InvalidStateReason); FaultCode invalidStateCode = new FaultCode(this.coordinationStrings.InvalidState, this.coordinationStrings.Namespace); this.invalidState = new Fault(this.coordinationStrings.FaultAction, invalidStateCode, invalidStateReason); string invalidProtocolReason = SR.GetString(SR.InvalidProtocolReason); FaultCode invalidProtocolCode = new FaultCode(this.coordinationStrings.InvalidProtocol, this.coordinationStrings.Namespace); this.invalidProtocol = new Fault(this.coordinationStrings.FaultAction, invalidProtocolCode, invalidProtocolReason); string invalidParametersReason = SR.GetString(SR.InvalidParametersReason); FaultCode invalidParametersCode = new FaultCode(this.coordinationStrings.InvalidParameters, this.coordinationStrings.Namespace); this.invalidParameters = new Fault(this.coordinationStrings.FaultAction, invalidParametersCode, invalidParametersReason); // // WS-AT // string inconsistentInternalStateReason = SR.GetString(SR.InconsistentInternalStateReason); FaultCode inconsistentInternalStateCode = new FaultCode(atomicTransactionStrings.InconsistentInternalState, atomicTransactionStrings.Namespace); this.inconsistentInternalState = new Fault(atomicTransactionStrings.FaultAction, inconsistentInternalStateCode, inconsistentInternalStateReason); // // .NET-AT // string invalidPolicyReason = SR.GetString(SR.InvalidPolicyReason); FaultCode invalidPolicyCode = new FaultCode(DotNetAtomicTransactionExternalStrings.InvalidPolicy, DotNetAtomicTransactionExternalStrings.Namespace); this.invalidPolicy = new Fault(atomicTransactionStrings.FaultAction, invalidPolicyCode, invalidPolicyReason); } public static Fault CreateAccessDeniedFault(MessageVersion version) { FaultException fe = (FaultException)System.ServiceModel.Dispatcher.AuthorizationBehavior.CreateAccessDeniedFaultException(); return new Fault(version.Addressing.DefaultFaultAction, fe.Code, fe.Reason.ToString()); } // WS-Coordination public Fault InvalidState { get { return this.invalidState; } } public Fault InvalidProtocol { get { return this.invalidProtocol; } } public Fault InvalidParameters { get { return this.invalidParameters; } } public abstract Fault CannotCreateContext { get; } public abstract Fault UnknownCompletionEnlistment { get; } public abstract Fault RegistrationDispatchFailed { get; } public abstract Fault CreateContextDispatchFailed { get; } public abstract Fault RegistrationProxyFailed { get; } public abstract Fault ParticipantRegistrationNetAccessDisabled { get; } public abstract Fault SubordinateRegistrationNetAccessDisabled { get; } public abstract Fault ParticipantRegistrationLoopback { get; } public abstract Fault CompletionAlreadyRegistered { get; } public abstract Fault ParticipantTMRegistrationFailed(Status status); public abstract Fault SubordinateTMRegistrationFailed(Status status); public abstract Fault TMEnlistFailed(Status status); // WS-AT public Fault InconsistentInternalState { get { return this.inconsistentInternalState; } } public abstract Fault UnknownTransaction { get; } // .NET-AT public Fault InvalidPolicy { get { return this.invalidPolicy; } } public static Faults Version(ProtocolVersion protocolVersion) { ProtocolVersionHelper.AssertProtocolVersion(protocolVersion, typeof(Faults), "V"); //assert valid protocol version switch (protocolVersion) { case ProtocolVersion.Version10: return Faults10.Instance; case ProtocolVersion.Version11: return Faults11.Instance; default: return null; // inaccessible path } } } class Faults10 : Faults { // WS-Coordination Fault contextRefused; Fault alreadyRegistered; // WS-AT no extra faults compared to 'Faults' // .NET-AT Fault tooManyEnlistments; Fault disabled; static Faults10 instance = new Faults10(); public static Faults Instance { get { return instance; } } Faults10() : base(ProtocolVersion.Version10) { // WS-Coordination string contextRefusedReason = SR.GetString(SR.ContextRefusedReason); FaultCode contextRefusedCode = new FaultCode(this.coordinationStrings.ContextRefused, this.coordinationStrings.Namespace); contextRefused = new Fault(this.coordinationStrings.FaultAction, contextRefusedCode, contextRefusedReason); string alreadyRegisteredReason = SR.GetString(SR.AlreadyRegisteredReason); FaultCode alreadyRegisteredCode = new FaultCode(this.coordinationStrings.AlreadyRegistered, this.coordinationStrings.Namespace); alreadyRegistered = new Fault(this.coordinationStrings.FaultAction, alreadyRegisteredCode, alreadyRegisteredReason); // .NET-AT string tooManyEnlistmentsReason = SR.GetString(SR.TooManyEnlistmentsReason); FaultCode tooManyEnlistmentsCode = new FaultCode(DotNetAtomicTransactionExternalStrings.TooManyEnlistments, DotNetAtomicTransactionExternalStrings.Namespace); tooManyEnlistments = new Fault(atomicTransactionStrings.FaultAction, tooManyEnlistmentsCode, tooManyEnlistmentsReason); string disabledReason = SR.GetString(SR.DisabledReason); FaultCode disabledCode = new FaultCode(DotNetAtomicTransactionExternalStrings.Disabled, DotNetAtomicTransactionExternalStrings.Namespace); disabled = new Fault(this.atomicTransactionStrings.FaultAction, disabledCode, disabledReason); } // WS-COOR public override Fault CannotCreateContext { get { return this.invalidState; } } public override Fault UnknownCompletionEnlistment { get { return this.invalidState; } } public override Fault RegistrationDispatchFailed { get { return this.invalidParameters; } } public override Fault CreateContextDispatchFailed { get { return this.invalidParameters; } } public override Fault RegistrationProxyFailed { get { return this.contextRefused; } } public override Fault ParticipantRegistrationNetAccessDisabled { get { return this.disabled; } } public override Fault SubordinateRegistrationNetAccessDisabled { get { return this.disabled; } } public override Fault ParticipantRegistrationLoopback { get { return this.contextRefused; } } public override Fault CompletionAlreadyRegistered { get { return this.alreadyRegistered; } } public override Fault ParticipantTMRegistrationFailed(Status status) { if (status == Status.TooManySubordinateEnlistments) { return this.tooManyEnlistments; } else { return this.invalidState; } } public override Fault SubordinateTMRegistrationFailed(Status status) { if (status == Status.TooManySubordinateEnlistments) { return this.tooManyEnlistments; } else { return this.invalidState; } } public override Fault TMEnlistFailed(Status status) { if (status == Status.TooManySubordinateEnlistments) { return this.tooManyEnlistments; } else { return this.invalidState; } } // WS-AT public override Fault UnknownTransaction { get { return this.invalidState; } } } class Faults11 : Faults { // WS-COOR Fault cannotCreateContext; Fault cannotRegisterParticipant; // WS-AT Fault unknownTransaction; // .NET-AT - no extra faults compared to 'Faults' static Faults11 instance = new Faults11(); public static Faults Instance { get { return instance; } } Faults11() : base(ProtocolVersion.Version11) { // WS-Coordination string cannotCreateContextReason = SR.GetString(SR.CannotCreateContextReason); FaultCode cannotCreateContextCode = new FaultCode(this.coordinationStrings.CannotCreateContext, this.coordinationStrings.Namespace); cannotCreateContext = new Fault (this.coordinationStrings.FaultAction, cannotCreateContextCode, cannotCreateContextReason); string cannotRegisterParticipantReason = SR.GetString(SR.CannotRegisterParticipant); FaultCode cannotRegisterParticipantCode = new FaultCode(this.coordinationStrings.CannotRegisterParticipant, this.coordinationStrings.Namespace); cannotRegisterParticipant = new Fault (this.coordinationStrings.FaultAction, cannotRegisterParticipantCode, cannotRegisterParticipantReason); // WS-AT string unknownTransactionReason = SR.GetString(SR.UnknownTransactionReason); FaultCode unknownTransactionCode = new FaultCode(this.atomicTransactionStrings.UnknownTransaction, this.atomicTransactionStrings.Namespace); unknownTransaction = new Fault(this.atomicTransactionStrings.FaultAction, unknownTransactionCode, unknownTransactionReason); } // WS-COOR public override Fault CannotCreateContext { get { return this.cannotCreateContext; } } public override Fault UnknownCompletionEnlistment { get { return this.cannotRegisterParticipant; } } public override Fault RegistrationDispatchFailed { get { return this.cannotRegisterParticipant; } } public override Fault CreateContextDispatchFailed { get { return this.cannotCreateContext; } } public override Fault RegistrationProxyFailed { get { return this.cannotCreateContext; } } public override Fault ParticipantRegistrationNetAccessDisabled { get { return this.cannotRegisterParticipant; } } public override Fault SubordinateRegistrationNetAccessDisabled { get { return this.cannotCreateContext; } } public override Fault ParticipantRegistrationLoopback { get { return this.cannotRegisterParticipant; } } public override Fault CompletionAlreadyRegistered { get { return this.cannotRegisterParticipant; } } public override Fault ParticipantTMRegistrationFailed(Status status) { return this.cannotRegisterParticipant; } public override Fault SubordinateTMRegistrationFailed(Status status) { return this.cannotCreateContext; } public override Fault TMEnlistFailed(Status status) { return this.cannotCreateContext; } // WS-AT public override Fault UnknownTransaction { get { return this.unknownTransaction; } } } } // 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
- ToRequest.cs
- DuplicateWaitObjectException.cs
- CodeStatement.cs
- GacUtil.cs
- WebFormDesignerActionService.cs
- SlipBehavior.cs
- BoolExpr.cs
- DrawTreeNodeEventArgs.cs
- MailMessageEventArgs.cs
- RootBuilder.cs
- NotifyParentPropertyAttribute.cs
- AnalyzedTree.cs
- WSIdentityFaultException.cs
- DataGridViewSortCompareEventArgs.cs
- DataGridViewColumnCollection.cs
- BypassElementCollection.cs
- TextDecoration.cs
- URIFormatException.cs
- UnsafeNativeMethodsPenimc.cs
- TypeSchema.cs
- DbDataRecord.cs
- RoutedEventHandlerInfo.cs
- MetadataProperty.cs
- RoutedPropertyChangedEventArgs.cs
- SystemColors.cs
- TogglePattern.cs
- MsmqTransportSecurityElement.cs
- ProcessHostConfigUtils.cs
- GridViewUpdatedEventArgs.cs
- DynamicPropertyHolder.cs
- HostProtectionPermission.cs
- assemblycache.cs
- X509Chain.cs
- DictionarySectionHandler.cs
- ListViewAutomationPeer.cs
- TypeResolver.cs
- BuildDependencySet.cs
- PopOutPanel.cs
- SmiSettersStream.cs
- SmtpLoginAuthenticationModule.cs
- SQLDateTimeStorage.cs
- StringComparer.cs
- InplaceBitmapMetadataWriter.cs
- BadImageFormatException.cs
- XsdDataContractExporter.cs
- HtmlControl.cs
- UnknownWrapper.cs
- NativeMethods.cs
- BitmapEffectDrawingContextState.cs
- InstalledFontCollection.cs
- SessionParameter.cs
- XPathConvert.cs
- DataControlButton.cs
- ContextMenuStrip.cs
- ControlBindingsConverter.cs
- DiagnosticTraceSource.cs
- WebBrowserBase.cs
- DataRecordInfo.cs
- TemplateBuilder.cs
- COSERVERINFO.cs
- SiteMapNodeItem.cs
- XmlWrappingWriter.cs
- Row.cs
- RegionData.cs
- VerticalAlignConverter.cs
- CryptoApi.cs
- DataColumnSelectionConverter.cs
- SupportsPreviewControlAttribute.cs
- IDispatchConstantAttribute.cs
- FreezableOperations.cs
- CustomErrorCollection.cs
- ToolStripSeparator.cs
- TextProperties.cs
- TransformGroup.cs
- PolicyUnit.cs
- MarkupExtensionReturnTypeAttribute.cs
- TraceSwitch.cs
- FunctionUpdateCommand.cs
- BorderGapMaskConverter.cs
- HtmlInputImage.cs
- TcpStreams.cs
- ElementAction.cs
- Popup.cs
- ObjectConverter.cs
- AppSettingsExpressionEditor.cs
- EdmError.cs
- NameSpaceEvent.cs
- ContainerVisual.cs
- XmlName.cs
- ObjectDataSource.cs
- SqlCacheDependencyDatabase.cs
- SqlNodeAnnotations.cs
- Parameter.cs
- VirtualPathProvider.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- TextTreePropertyUndoUnit.cs
- ToolStripPanel.cs
- ListInitExpression.cs
- CompilerCollection.cs
- WindowsFont.cs