AspNetCompatibilityRequirementsAttribute Sınıf

Tanım

Hizmetin ASP.NET uyumluluk kodunda çalıştırılıp çalıştırılamayacağını göstermek için bir Windows Communication Foundation (WCF) hizmetine uygulanır.

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
Devralma
AspNetCompatibilityRequirementsAttribute
Öznitelikler
Uygulamalar

Örnekler

Hizmet geliştiricileri, özelliğini AspNetCompatibilityRequirementsAttribute Required aşağıdaki örnekte gösterildiği gibi olarak ayarlayarak RequirementsMode yalnızca ASP.NET Uyumluluk Modu'nda çalıştırıldığından emin olabilir

[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

Açıklamalar

Bir hizmet uygulama sınıfına uygulandığında, bu öznitelik bu hizmetin barındırma uygulaması etki alanı (AppDomain) için ASP.NET uyumluluk modunun etkinleştirilmesini gerektirdiğini veya destekleyip desteklemediğini gösterir.

WCF hizmetlerini barındıran AppDomains iki farklı barındırma modunda çalışabilir:

  • Karma Aktarım Modu (Varsayılan): Bu modda, WCF hizmetleri ASP.NET HTTP işlem hattına katılmaz. Bu, bir WCF hizmetinin barındırma ortamından ve aktarımdan bağımsız olarak tutarlı bir şekilde davranmayı garanti eder.

  • ASP.NET Uyumluluk Modu: Bu modda, WCF hizmetleri ASMX hizmetlerine benzer şekilde ASP.NET HTTP işlem hattına katılır. Dosya Yetkilendirme, UrlAuthorization ve HTTP Oturum Durumu gibi ASP.NET özellikleri bu modda çalışan WCF hizmetleri için geçerlidir.

Barındırma modu, uygulama düzeyi yapılandırma bayrağı aspNetCompatibilityEnabledtarafından denetlenmektedir.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Bu bayrak varsayılan olarak açıktır false ve bu nedenle, ASP.NET uyumluluk modunu açıkça kabul etmediğiniz sürece WCF hizmetleri Karma Aktarımlar Modunda çalışır.

ASP.NET uyumluluk modu hakkında daha fazla bilgi için bkz<. serviceHostingEnvironment>.

RequirementsMode Bunu yapmak için özelliğini kullanın. Çalışma zamanında, uygulamalar statik özelliğinin AspNetCompatibilityEnableddeğerini denetleyerek ASP.NET uyumluluk modunun etkinleştirilip etkinleştirilmediğini algılayabilir.

Oluşturucular

AspNetCompatibilityRequirementsAttribute()

AspNetCompatibilityRequirementsAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

RequirementsMode

Hizmet için gereken ASP.NET uyumluluk düzeyini alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Bağlama öğelerinin sözleşmenin uygulanmasını desteklemek için erişebileceği özel veriler ekler.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Barındırma türünün ASP.NET uyumluluk gereksinimleriyle tutarlı olup olmadığını denetler.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Hizmet davranışını doğrular.

Şunlara uygulanır