AspNetCompatibilityRequirementsAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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ğı aspNetCompatibilityEnabled
tarafı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. |