This documentation is archived and is not being maintained.

AspNetCompatibilityRequirementsAttribute Class

Applied to a service to indicate whether that service can be run in ASP.NET compatibility code.


Namespace:  System.ServiceModel.Activation
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

type AspNetCompatibilityRequirementsAttribute =  
        inherit Attribute
        interface IServiceBehavior

The AspNetCompatibilityRequirementsAttribute type exposes the following members.

Public methodAspNetCompatibilityRequirementsAttributeInitializes a new instance of the AspNetCompatibilityRequirementsAttribute class.

Public propertyRequirementsModeGets or sets the level of ASP.NET compatibility required by the service.
Public propertyTypeIdWhen implemented in a derived class, gets a unique identifier for this Attribute. (Inherited from Attribute.)

Public methodEqualsInfrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeReturns the hash code for this instance. (Inherited from Attribute.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIsDefaultAttributeWhen overridden in a derived class, indicates whether the value of this instance is the default value for the derived class. (Inherited from Attribute.)
Public methodMatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Explicit interface implemetationPrivate method_Attribute.GetIDsOfNamesMaps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoRetrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoCountRetrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.InvokeProvides access to properties and methods exposed by an object. (Inherited from Attribute.)
Explicit interface implemetationPrivate methodIServiceBehavior.AddBindingParametersAdds custom data that the binding elements can access to support the implementation of the contract.
Explicit interface implemetationPrivate methodIServiceBehavior.ApplyDispatchBehaviorChecks that the type of hosting is consistent with the ASP.NET compatibility requirements.
Explicit interface implemetationPrivate methodIServiceBehavior.ValidateValidates the service behavior.

When applied to a service implementation class, this attribute indicates whether this service requires or supports ASP.NET compatibility mode to be enabled for the hosting application domain (AppDomain).

AppDomains hosting services can run in two different hosting modes:

  • Mixed Transports Mode (Default): In this mode, services do not participate in the ASP.NET HTTP pipeline. This guarantees that a service behaves consistently, independent of hosting environment and transport.

  • ASP.NET Compatibility Mode: In this mode, services participate in the ASP.NET HTTP pipeline in a manner similar to ASMX services. ASP.NET features such as File Authorization, UrlAuthorization, and HTTP Session State are applicable to services running in this mode.

The hosting mode is controlled by the application-level configuration flag aspNetCompatibilityEnabled.


<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>


This flag is false by default and thus services run in the Mixed Transports Mode unless you explicitly opt into the ASP.NET compatibility mode.

For more information aboutASP.NET compatibility mode, see serviceHostingEnvironment.

Use the RequirementsMode property to do this. At runtime, applications can detect if ASP.NET compatibility mode is enabled by checking the value of the static property AspNetCompatibilityEnabled.

Users must explicitly opt-in for the ASP.NET compatibility mode when implementing the service by setting the RequirementsMode property on the AspNetCompatibilityRequirementsAttribute in the following examples.

No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.