Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ServiceBehaviorAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt das interne Ausführungsverhalten einer Dienstvertragsimplementierung an.

Namespace:   System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

System.Object
  System.Attribute
    System.ServiceModel.ServiceBehaviorAttribute

[AttributeUsageAttribute(AttributeTargets.Class)]
public sealed class ServiceBehaviorAttribute : Attribute, IServiceBehavior

NameBeschreibung
System_CAPS_pubmethodServiceBehaviorAttribute()

Initialisiert eine neue Instanz der ServiceBehaviorAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyAddressFilterMode

Gibt den AddressFilterMode an, der vom Verteiler für die Weiterleitung eingehender Nachrichten an den korrekten Endpunkt verwendet wird, oder legt ihn fest.

System_CAPS_pubpropertyAutomaticSessionShutdown

Gibt an, ob eine Sitzung automatisch geschlossen werden soll, wenn ein Client eine Ausgabesitzung schließt.

System_CAPS_pubpropertyConcurrencyMode

Gibt an, ob ein Dienst einen Thread, mehrere Threads oder wiedereintrittsfähige Aufrufe unterstützt, oder legt dies fest.

System_CAPS_pubpropertyConfigurationName

Ruft den Wert ab, mit dem das Dienstelement in einer Anwendungskonfigurationsdatei gesucht wird, oder legt ihn fest.

System_CAPS_pubpropertyEnsureOrderedDispatch

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die vom Dienst beauftragte Verteilung sichergestellt ist.

System_CAPS_pubpropertyIgnoreExtensionDataObject

Ruft einen Wert ab, der angibt, ob unbekannte Serialisierungsdaten gesendet werden sollen, oder legt ihn fest.

System_CAPS_pubpropertyIncludeExceptionDetailInFaults

Ruft einen Wert ab bzw. legt ihn fest, der angibt, dass allgemeine nicht behandelte Ausführungsausnahmen in eine System.ServiceModel.FaultException<TDetail> vom Typ System.ServiceModel.ExceptionDetail konvertiert und als Fehlermeldung gesendet werden. Legen Sie dieses Attribut nur während der Entwicklung auf true fest, um Fehler in einem Dienst zu beheben.

System_CAPS_pubpropertyInstanceContextMode

Ruft den Wert ab, der angibt, wenn neue Dienstobjekte erstellt werden, oder legt diesen Wert fest.

System_CAPS_pubpropertyMaxItemsInObjectGraph

Ruft die maximale Anzahl der in einem serialisierten Objekt zulässigen Elemente ab oder legt sie fest.

System_CAPS_pubpropertyName

Ruft den Wert des Namensattributs im Dienstelement in WSDL (Web Services Description Language) ab oder legt ihn fest.

System_CAPS_pubpropertyNamespace

Ruft den Wert des Zielnamespace für den Dienst in WSDL (Web Services Description Language) ab oder legt ihn fest.

System_CAPS_pubpropertyReleaseServiceInstanceOnTransactionComplete

Ruft einen Wert ab, der angibt, ob das Dienstobjekt freigegeben wird, wenn die aktuelle Transaktion abgeschlossen ist, oder legt diesen Wert fest.

System_CAPS_pubpropertyTransactionAutoCompleteOnSessionClose

Ruft einen Wert ab, der angibt, ob anstehende Transaktionen abgeschlossen werden, wenn die aktuelle Sitzung ohne Fehler geschlossen wird, oder legt diesen Wert fest.

System_CAPS_pubpropertyTransactionIsolationLevel

Gibt die Transaktionsisolierungsebene für neue Transaktionen an, die innerhalb des Diensts erstellt wurden, sowie von einem Client übertragene eingehende Transaktionen.

System_CAPS_pubpropertyTransactionTimeout

Ruft den Zeitraum ab oder legt den Zeitraum fest, innerhalb dessen eine Transaktion abgeschlossen werden muss.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

System_CAPS_pubpropertyUseSynchronizationContext

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob der aktuelle Synchronisierungskontext zum Auswählen des Ausführungsthreads verwendet wird.

System_CAPS_pubpropertyValidateMustUnderstand

Ruft einen Wert ab oder legt diesen fest, der angibt, ob das System oder die Anwendung die Verarbeitung von MustUnderstand-SOAP-Headern erzwingt.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodGetWellKnownSingleton()

Ruft ein Objekt ab, das den Dienst implementiert und das als Singletoninstanz des Diensts verwendet wird, oder null, wenn keine Singletoninstanz vorhanden ist.

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodSetWellKnownSingleton(Object)

Gibt ein Objekt an, das den Dienst implementiert und das als Singletoninstanz des Diensts verwendet wird.

System_CAPS_pubmethodShouldSerializeConfigurationName()

Gibt einen Wert zurück, der angibt, ob die ConfigurationName-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

System_CAPS_pubmethodShouldSerializeReleaseServiceInstanceOnTransactionComplete()

Gibt einen Wert zurück, der angibt, ob die ReleaseServiceInstanceOnTransactionComplete-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

System_CAPS_pubmethodShouldSerializeTransactionAutoCompleteOnSessionClose()

Gibt einen Wert zurück, der angibt, ob die TransactionAutoCompleteOnSessionClose-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

System_CAPS_pubmethodShouldSerializeTransactionIsolationLevel()

Gibt einen Wert zurück, der angibt, ob die TransactionIsolationLevel-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

System_CAPS_pubmethodShouldSerializeTransactionTimeout()

Gibt einen Wert zurück, der angibt, ob die TransactionTimeout-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Übergibt benutzerdefinierte Datenobjekte an die Bindungen, die die Verhaltenseigenschaften unterstützen.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Passt die Dienstlaufzeit an, um die Verhaltenseigenschaften zu unterstützen.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Bestätigt, dass die Dienstbeschreibung und der Diensthost in der Lage sind, das Verhalten zu unterstützen.

Wendet das ServiceBehaviorAttribute-Attribut auf eine Dienstimplementierung an, um das dienstweite Ausführungsverhalten festzulegen. (Um das Ausführungsverhalten auf Methodenebene anzugeben, verwenden Sie das OperationBehaviorAttribute-Attribut.) Dieses Attribut kann nur auf eine Dienstimplementierung angewendet werden. Ein Arbeitsbeispiel finden Sie unter Service Behaviors Samples.

ServiceBehaviorAttribute-Eigenschaften sind ein Windows Communication Foundation (WCF)-Programmiermodellfeature, das allgemeine Features aktiviert, die andernfalls von Entwicklern implementiert werden müssen. Weitere Informationen über diese und andere Verhalten finden Sie unter Angeben des Dienstlaufzeitverhaltens. Weitere Informationen über die zugrunde liegenden Laufzeiteigenschaften, die von einigen der folgenden Eigenschaften festgelegt werden, finden Sie unter Erweitern von ServiceHost und der Dienstmodellebene.

  • Die AddressFilterMode-Eigenschaft gibt den Filtertyp an, der vom Verteilersystem zum Suchen des Endpunkts, der Anforderungen verarbeitet, verwendet wird.

  • Die AutomaticSessionShutdown-Eigenschaft schließt die Sitzung automatisch, wenn der Kanal geschlossen wird und der Dienst die Verarbeitung aller übrigen Nachrichten abgeschlossen hat.

  • Die ConcurrencyMode-Eigenschaft steuert das interne Threadingmodell und aktiviert so die Unterstützung für wiedereintrittsfähige oder Multithreaddienste.

  • Die ConfigurationName-Eigenschaft wird zum Deklarieren eines Namens zur Verwendung im name-Attribut des <service>-Elements in einer Konfigurationsdatei verwendet.

  • Die IgnoreExtensionDataObject-Eigenschaft ermöglicht der Laufzeit, zusätzliche Serialisierungsinformationen, die zum Verarbeiten der Nachricht nicht erforderlich sind, zu ignorieren.

  • Die IncludeExceptionDetailInFaults-Eigenschaft gibt an, ob nicht behandelte Ausnahmen in einem Dienst als SOAP-Fehler zurückgegeben werden. Dieses dient ausschließlich dem Debugging.

  • Die InstanceContextMode-Eigenschaft gibt an, ob und wann Dienste und deren Dienstobjekte während eines Austauschs mit einem Client wiederverwendet werden.

  • Die MaxItemsInObjectGraph-Eigenschaft, um die Anzahl von Elementen in einem Objektdiagramm, die serialisiert werden, einzuschränken.

  • Die Name-Eigenschaft und Namespace-Eigenschaft steuern den Namen und den Namespace für den WSDL-Ausdruck des Dienstelements.

  • Die ReleaseServiceInstanceOnTransactionComplete-Eigenschaft gibt an, ob das Dienstobjekt bei Abschluss der Transaktion wiederverwendet wird.

  • Die TransactionAutoCompleteOnSessionClose-Eigenschaft gibt an, ob ausstehende Transaktionen abgeschlossen werden, wenn die Sitzung geschlossen wird.

  • Die TransactionIsolationLevel-Eigenschaft gibt die Isolierungsebene der Transaktion an, die vom Vertrag unterstützt wird.

  • Die TransactionTimeout-Eigenschaft gibt den Zeitraum an, in dem eine Transaktion abgeschlossen werden muss, bevor sie abgebrochen wird.

  • Die UseSynchronizationContext-Eigenschaft gibt an, ob eingehende Methodenaufrufe automatisch mit dem Benutzeroberflächenthread synchronisiert werden sollen.

  • Die ValidateMustUnderstand-Eigenschaft informiert das System, ob es prüfen sollte, dass als MustUnderstand markierte SOAP-Header in der Tat verstanden wurden.

Die IncludeExceptionDetailInFaults-Eigenschaft kann auch mit einer Anwendungskonfigurationsdatei festgelegt werden. Ausführliche Informationen finden Sie unter IncludeExceptionDetailInFaults.

Im folgenden Codebeispiel werden die ServiceBehaviorAttribute-Eigenschaften veranschaulicht. Die BehaviorService-Klasse verwendet das ServiceBehaviorAttribute-Attribut, um Folgendes anzugeben:

  • Das Dienstobjekt wird wiederverwendet, wenn die Transaktion abgeschlossen ist.

  • Es gibt ein Dienstobjekt für jede Sitzung.

  • Der Dienst ist ein Singlethread und unterstützt keine wiedereintrittsfähigen Aufrufe.

Darüber hinaus geben die OperationBehaviorAttribute-Werte auf Vorgangsebene an, dass die TxWork-Methode automatisch in Transaktionsflüsse eingetragen wird oder eine neue Transaktion zum Durchführen der Aufgaben erstellt, und dass für die Transaktion automatisch ein Commit ausgeführt wird, wenn keine nicht behandelte Ausnahme auftritt.

using System;
using System.ServiceModel;
using System.Transactions;

namespace Microsoft.WCF.Documentation
{
  [ServiceContract(
    Namespace="http://microsoft.wcf.documentation", 
    SessionMode=SessionMode.Required
  )]
  public interface IBehaviorService
  {
    [OperationContract]
    string TxWork(string message);
  }

  // Note: To use the TransactionIsolationLevel property, you 
  // must add a reference to the System.Transactions.dll assembly.
  /* The following service implementation:
   *   -- Processes messages on one thread at a time
   *   -- Creates one service object per session
   *   -- Releases the service object when the transaction commits
   */
  [ServiceBehavior(
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    ReleaseServiceInstanceOnTransactionComplete=true
  )]
  public class BehaviorService : IBehaviorService, IDisposable
  {
    Guid myID;

    public BehaviorService()
    {
      myID = Guid.NewGuid();
      Console.WriteLine(
        "Object "
        + myID.ToString()
        + " created.");
    }

    /*
     * The following operation-level behaviors are specified:
     *   -- The executing transaction is committed when
     *        the operation completes without an 
     *        unhandled exception
     *   -- Always executes under a flowed transaction.
     */
    [OperationBehavior(
      TransactionAutoComplete = true,
      TransactionScopeRequired = true
    )]
    [TransactionFlow(TransactionFlowOption.Mandatory)]
    public string TxWork(string message)
    {
      // Do some transactable work.
      Console.WriteLine("TxWork called with: " + message);
      // Display transaction information.

      TransactionInformation info = Transaction.Current.TransactionInformation;
      Console.WriteLine("The distributed tx ID: {0}.", info.DistributedIdentifier);
      Console.WriteLine("The tx status: {0}.", info.Status);
      return String.Format("Hello. This was object {0}.",myID.ToString()) ;
    }

    public void Dispose()
    {
      Console.WriteLine(
        "Service "
        + myID.ToString()
        + " is being recycled."
      );
    }
  }
}

Die zugrunde liegende Bindung muss Transaktionsflüsse unterstützen, damit das folgende Codebeispiel ordnungsgemäß ausgeführt wird. Um Transaktionsflüsse mit WSHttpBinding zu unterstützen, legen Sie zum Beispiel die TransactionFlow-Eigenschaft im Code oder in einer Anwendungskonfigurationsdatei auf true fest. Das folgende Codebeispiel zeigt die Konfigurationsdatei für das vorhergehende Beispiel.

.NET Framework
Verfügbar seit 3.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: