다음을 통해 공유


AspNetCompatibilityRequirementsAttribute 클래스

정의

WCF(Windows Communication Foundation) 서비스에 적용되어 이 서비스를 ASP.NET 호환 코드로 실행할 수 있는지 여부를 나타냅니다.

public ref class AspNetCompatibilityRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IServiceBehavior
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class AspNetCompatibilityRequirementsAttribute : Attribute, System.ServiceModel.Description.IServiceBehavior
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type AspNetCompatibilityRequirementsAttribute = class
    inherit Attribute
    interface IServiceBehavior
Public NotInheritable Class AspNetCompatibilityRequirementsAttribute
Inherits Attribute
Implements IServiceBehavior
상속
AspNetCompatibilityRequirementsAttribute
특성
구현

예제

서비스 개발자는 다음 예제와 같이 속성을 to로 AspNetCompatibilityRequirementsAttribute Required 설정 RequirementsMode 하여 해당 서비스가 ASP.NET 호환 모드에서만 실행되도록 할 수 있습니다.

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculatorSession
{
    [OperationContract]
    void Clear();
    [OperationContract]
    void AddTo(double n);
    [OperationContract]
    void SubtractFrom(double n);
    [OperationContract]
    void MultiplyBy(double n);
    [OperationContract]
    void DivideBy(double n);
    [OperationContract]
    double Equals();
}
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface ICalculatorSession

    <OperationContract()> _
    Sub Clear()
    <OperationContract()> _
    Sub AddTo(ByVal n As Double)
    <OperationContract()> _
    Sub SubtractFrom(ByVal n As Double)
    <OperationContract()> _
    Sub MultiplyBy(ByVal n As Double)
    <OperationContract()> _
    Sub DivideBy(ByVal n As Double)
    <OperationContract()> _
    Function Equal() As Double
End Interface
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class CalculatorService : ICalculatorSession
{
    double result
    {   // Store result in AspNet session.
        get
        {
            if (HttpContext.Current.Session["Result"] != null)
                return (double)HttpContext.Current.Session["Result"];
            return 0.0D;
        }
        set
        {
            HttpContext.Current.Session["Result"] = value;
        }
    }

    public void Clear()
    {
    }

    public void AddTo(double n)
    {
        result += n;
    }

    public void SubtractFrom(double n)
    {
        result -= n;
    }

    public void MultiplyBy(double n)
    {
        result *= n;
    }

    public void DivideBy(double n)
    {
        result /= n;
    }

    public double Equals()
    {
        return result;
    }
}
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Required)> _
    Public Class CalculatorService
        Implements ICalculatorSession

        Property Result() As Double
            ' Store result in AspNet Session.
            Get
                If (HttpContext.Current.Session("Result") Is Nothing) Then
                    Return 0D
                End If
                Return HttpContext.Current.Session("Result")
            End Get
            Set(ByVal value As Double)
                HttpContext.Current.Session("Result") = value
            End Set
        End Property

        Public Sub Clear() _
 Implements ICalculatorSession.Clear
            Result = 0D
        End Sub

        Public Sub AddTo(ByVal n As Double) _
Implements ICalculatorSession.AddTo
            Result += n
        End Sub

        Public Sub SubtractFrom(ByVal n As Double) _
Implements ICalculatorSession.SubtractFrom

            Result -= n
        End Sub

        Public Sub MultiplyBy(ByVal n As Double) _
Implements ICalculatorSession.MultiplyBy

            Result *= n
        End Sub

        Public Sub DivideBy(ByVal n As Double) _
Implements ICalculatorSession.DivideBy

            Result /= n
        End Sub

        Public Function Equal() As Double _
Implements ICalculatorSession.Equal

            Return Result
        End Function
    End Class

설명

서비스 구현 클래스에 적용되는 경우 이 특성은 이 서비스가 호스팅 애플리케이션 도메인(AppDomain)에 대해 ASP.NET 호환 모드를 사용하도록 설정해야 하는지 또는 지원하는지 여부를 나타냅니다.

WCF 서비스를 호스팅하는 AppDomains는 두 가지 호스팅 모드로 실행할 수 있습니다.

  • 혼합 전송 모드(기본값): 이 모드에서는 WCF 서비스가 ASP.NET HTTP 파이프라인에 참여하지 않습니다. 이렇게 하면 호스팅 환경 및 전송과 관계없이 WCF 서비스가 일관되게 작동합니다.

  • ASP.NET 호환성 모드: 이 모드에서는 WCF 서비스가 ASMX 서비스와 유사한 방식으로 ASP.NET HTTP 파이프라인에 참여합니다. 파일 권한 부여, UrlAuthorization 및 HTTP 세션 상태와 같은 ASP.NET 기능은 이 모드에서 실행되는 WCF 서비스에 적용할 수 있습니다.

호스팅 모드는 애플리케이션 수준의 구성 플래그 aspNetCompatibilityEnabled를 통해 제어됩니다.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

이 플래그는 false 기본적으로 사용되므로 ASP.NET 호환 모드를 명시적으로 옵트인하지 않는 한 WCF 서비스는 혼합 전송 모드에서 실행됩니다.

ASP.NET 호환 모드에 대한 자세한 내용은 serviceHostingEnvironment를 참조<하세요>.

RequirementsMode 작업을 수행하려면 이 속성을 사용합니다. 런타임 시 애플리케이션은 정적 속성AspNetCompatibilityEnabled의 값을 확인하여 ASP.NET 호환성 모드가 사용되는지 검색할 수 있습니다.

생성자

AspNetCompatibilityRequirementsAttribute()

AspNetCompatibilityRequirementsAttribute 클래스의 새 인스턴스를 초기화합니다.

속성

RequirementsMode

서비스에 필요한 ASP.NET 호환성 수준을 가져오거나 설정합니다.

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

바인딩 요소에서 계약 구현을 지원하기 위해 액세스할 수 있는 사용자 지정 데이터를 추가합니다.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

호스팅 유형이 ASP.NET 호환성 요구 사항과 일치하는지 확인합니다.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

서비스 동작의 유효성을 검사합니다.

적용 대상