AspNetCompatibilityRequirementsAttribute Kelas

Definisi

Diterapkan ke layanan Windows Communication Foundation (WCF) untuk menunjukkan apakah layanan tersebut dapat dijalankan dalam kode kompatibilitas 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
Warisan
AspNetCompatibilityRequirementsAttribute
Atribut
Penerapan

Contoh

Pengembang layanan dapat memastikan bahwa layanan mereka hanya dijalankan dalam Mode Kompatibilitas ASP.NET dengan mengatur RequirementsMode properti ke seperti yang AspNetCompatibilityRequirementsAttributeRequired ditunjukkan dalam contoh berikut

[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

Keterangan

Saat diterapkan ke kelas implementasi layanan, atribut ini menunjukkan apakah layanan ini memerlukan atau mendukung mode kompatibilitas ASP.NET untuk diaktifkan untuk domain aplikasi hosting (AppDomain).

AppDomains yang menghosting layanan WCF dapat berjalan dalam dua mode hosting yang berbeda:

  • Mode Transportasi Campuran (Default): Dalam mode ini, layanan WCF tidak berpartisipasi dalam alur HTTP ASP.NET. Ini menjamin bahwa layanan WCF bertingkah konsisten, independen dari lingkungan hosting dan transportasi.

  • ASP.NET Mode Kompatibilitas: Dalam mode ini, layanan WCF berpartisipasi dalam alur HTTP ASP.NET dengan cara yang mirip dengan layanan ASMX. ASP.NET fitur seperti Otorisasi File, UrlAuthorization, dan Status Sesi HTTP berlaku untuk layanan WCF yang berjalan dalam mode ini.

Mode hosting dikendalikan oleh bendera aspNetCompatibilityEnabledkonfigurasi tingkat aplikasi .

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Bendera ini false secara default dan dengan demikian layanan WCF berjalan dalam Mode Transportasi Campuran kecuali Anda secara eksplisit memilih mode kompatibilitas ASP.NET.

Untuk informasi selengkapnya tentang mode kompatibilitas ASP.NET, lihat <serviceHostingEnvironment>.

RequirementsMode Gunakan properti untuk melakukan ini. Pada runtime, aplikasi dapat mendeteksi apakah mode kompatibilitas ASP.NET diaktifkan dengan memeriksa nilai properti AspNetCompatibilityEnabledstatis .

Konstruktor

Nama Deskripsi
AspNetCompatibilityRequirementsAttribute()

Menginisialisasi instans baru dari kelas AspNetCompatibilityRequirementsAttribute.

Properti

Nama Deskripsi
RequirementsMode

Mendapatkan atau mengatur tingkat kompatibilitas ASP.NET yang diperlukan oleh layanan.

TypeId

Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini.

(Diperoleh dari Attribute)

Metode

Nama Deskripsi
Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Menambahkan data kustom yang dapat diakses elemen pengikatan untuk mendukung implementasi kontrak.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Memeriksa apakah jenis hosting konsisten dengan persyaratan kompatibilitas ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Memvalidasi perilaku layanan.

Berlaku untuk