AspNetCompatibilityRequirementsAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 특성
- 구현
예제
서비스 개발자는 다음 예제와 같이 속성을 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) |
서비스 동작의 유효성을 검사합니다. |