Wesentliche Windows Communication Foundation-BegriffeFundamental Windows Communication Foundation Concepts

Dieses Dokument enthält eine Ansicht über die Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Architektur auf hoher Ebene.This document provides a high-level view of the Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) architecture. Es ist dafür vorgesehen, Hauptkonzepte zu erklären und zu erläutern, wie diese zusammenpassen.It is intended to explain key concepts and how they fit together. Ein Lernprogramm zum Erstellen der einfachsten Version von einem WCFWCF -Dienst und Client finden Sie unter Lernprogramm für erste Schritte.For a tutorial on creating the simplest version of a WCFWCF service and client, see Getting Started Tutorial. Um zu erfahren, WCFWCF Programmierung, finden Sie unter grundlegende WCF-Programmierung.To learn WCFWCF programming, see Basic WCF Programming.

Grundlagen von WCFWCF Fundamentals

WCFWCF ist eine Laufzeit und ein Satz von APIs zum Erstellen von Systemen, die Nachrichten zwischen Diensten und Clients versenden. is a runtime and a set of APIs for creating systems that send messages between services and clients. Die gleiche Infrastruktur und die gleichen APIs werden verwendet, um Anwendungen zu erstellen, die mit anderen Anwendungen im gleichen Computersystem oder in einem System kommunizieren, das in einem anderen Unternehmen besteht und auf das über das Internet zugegriffen wird.The same infrastructure and APIs are used to create applications that communicate with other applications on the same computer system or on a system that resides in another company and is accessed over the Internet.

Messaging und EndpunkteMessaging and Endpoints

WCFWCF basiert auf dem Konzept einer nachrichtenbasierten Kommunikation, und alle Objekte, die als Nachricht aufgebaut werden können (z. B. eine HTTP-Anfrage oder eine Message Queuing (MSQM)-Nachricht), können im Programmierungsmodell auf einheitliche Art dargestellt werden. is based on the notion of message-based communication, and anything that can be modeled as a message (for example, an HTTP request or a Message Queuing (also known as MSMQ) message) can be represented in a uniform way in the programming model. Dies ermöglicht eine einheitliche API über verschiedene Transportmechanismen hinweg.This enables a unified API across different transport mechanisms.

Das Modell unterscheidet zwischen Clients, sind Anwendungen, die Kommunikation initiieren und Services, sind Anwendungen, die mit ihnen kommunizieren und reagieren auf, die Clients warten die Kommunikation.The model distinguishes between clients, which are applications that initiate communication, and services, which are applications that wait for clients to communicate with them and respond to that communication. Eine einzelne Anwendung kann sowohl als Client als auch als Dienst fungieren.A single application can act as both a client and a service. Beispiele finden Sie unter Duplexdienste und Peer-zu-Peer-Netzwerken.For examples, see Duplex Services and Peer-to-Peer Networking.

Nachrichten werden zwischen Endpunkten versendet.Messages are sent between endpoints. Endpunkte sind Orte, wo Nachrichten gesendet oder empfangen werden (oder beides), und definieren Sie die Informationen, die für den Nachrichtenaustausch erforderlich.Endpoints are places where messages are sent or received (or both), and they define all the information required for the message exchange. Ein Dienst macht einen oder mehrere Anwendungsendpunkte verfügbar (ebenso wie keinen oder mehrere Infrastrukturendpunkte), und der Client erstellt einen Endpunkt, der mit einem der Endpunkte des Diensts kompatibel ist.A service exposes one or more application endpoints (as well as zero or more infrastructure endpoints), and the client generates an endpoint that is compatible with one of the service's endpoints.

Ein Endpunkt beschreibt in eine standardbasierte Art, in dem Nachrichten gesendet werden sollen, wie sie gesendet werden sollen und wie die Nachrichten aussehen soll.An endpoint describes in a standard-based way where messages should be sent, how they should be sent, and what the messages should look like. Ein Dienst kann diese Informationen als Metadaten, die Clients verarbeiten kann, um entsprechende verfügbar zu machen WCFWCF Clients und Kommunikations Stapel.A service can expose this information as metadata that clients can process to generate appropriate WCFWCF clients and communication stacks.

KommunikationsprotokolleCommunication Protocols

Ein erforderliches Element des kommunikationsstapels ist die Transportprotokoll.One required element of the communication stack is the transport protocol. Nachrichten können über Intranets und das Internet mithilfe von allgemein gebräuchlichen Transportprotokollen, z. B. HTTP und TCP, gesendet werden.Messages can be sent over intranets and the Internet using common transports, such as HTTP and TCP. Es bestehen noch weitere Transporte, die eine Kommunikation mit Message Queuing-Anwendungen und mit Knoten in einem Peer Networking-Netz unterstützen.Other transports are included that support communication with Message Queuing applications and nodes on a Peer Networking mesh. Weitere Transportmechanismen können über die integrierten Erweiterungspunkte von WCFWCF hinzugefügt werden.More transport mechanisms can be added using the built-in extension points of WCFWCF.

Ein anderes erforderliches Element des Kommunikationsstapels ist die Codierung, die angibt, wie jede Nachricht formatiert ist.Another required element in the communication stack is the encoding that specifies how any given message is formatted. WCFWCF stellt die folgenden Codierungen bereit: provides the following encodings:

  • Textcodierung, eine interoperable Codierung.Text encoding, an interoperable encoding.

  • Message Transmission Optimization Mechanism (MTOM)-Codierung, eine interoperable Möglichkeit, unstrukturierte Binärdaten effizient an einem und von einem Dienst zu senden.Message Transmission Optimization Mechanism (MTOM) encoding, which is an interoperable way for efficiently sending unstructured binary data to and from a service.

  • Binäre Codierung für effiziente Übertragung.Binary encoding for efficient transfer.

Mehr Codierungsmechanismen (z. B. eine Komprimierungscodierung) können mit den integrierten Erweiterungspunkten von WCFWCF hinzugefügt werden.More encoding mechanisms (for example, a compression encoding) can be added using the built-in extension points of WCFWCF.

MessagingmusterMessage Patterns

WCFWCF unterstützt mehrere Messagingmuster, einschließlich Anforderung-Antwort-, unidirektionale, und Duplexkommunikation. supports several messaging patterns, including request-reply, one-way, and duplex communication. Verschiedene Transporte unterstützen verschiedene Messagingmuster und beeinflussen so die Interaktionstypen, die sie unterstützen.Different transports support different messaging patterns, and thus affect the types of interactions that they support. Die WCFWCF-APIs und die -Laufzeit helfen Ihnen auch, Nachrichten sicher und zuverlässig zu senden.The WCFWCF APIs and runtime also help you to send messages securely and reliably.

WCF-BegriffeWCF Terms

Folgende andere Konzepte und Begriffe werden in der WCFWCF-Dokumentation verwendet:Other concepts and terms used in the WCFWCF documentation include the following.

messagemessage
Eine eigenständige Dateneinheit, die aus mehreren Teilen bestehen kann, unter anderem aus Text und Headern.A self-contained unit of data that can consist of several parts, including a body and headers.

serviceservice
Ein Konstrukt, das einen oder mehrere Endpunkte verfügbar macht, wobei jeder Endpunkt wiederum einen oder mehrere Dienstvorgänge verfügbar macht.A construct that exposes one or more endpoints, with each endpoint exposing one or more service operations.

Endpunkt (endpoint)endpoint
Ein Konstrukt, von dem Nachrichten gesendet oder empfangen werden (oder beides).A construct at which messages are sent or received (or both). Er besteht aus einem Ort (einer Adresse), der definiert, wohin die Nachrichten gesendet werden können, einer Spezifikation des Kommunikationsmechanismus (einer Bindung), die beschreibt, wie die Nachrichten gesendet werden sollen, und einer Definition eines Satzes von Nachrichten, die an diesen Ort gesendet oder dort empfangen werden können (oder beides), sowie aus einem Dienstvertrag, der beschreibt, welche Nachricht gesendet werden kann.It comprises a location (an address) that defines where messages can be sent, a specification of the communication mechanism (a binding) that described how messages should be sent, and a definition for a set of messages that can be sent or received (or both) at that location (a service contract) that describes what message can be sent.

Ein WCFWCF-Dienst wird als Sammlung von Endpunkten verfügbar gemacht.A WCFWCF service is exposed to the world as a collection of endpoints.

Anwendungsendpunkt (application endpoint)application endpoint
Ein von der Anwendung verfügbar gemachter Endpunkt, der einem Dienstvertrag entspricht, der von der Anwendung implementiert wurde.An endpoint exposed by the application and that corresponds to a service contract implemented by the application.

Infrastrukturendpunktinfrastructure endpoint
Ein Endpunkt, der von der Infrastruktur verfügbar gemacht wird, um Funktionalitäten zu erleichtern, die vom Dienst benötigt oder bereitgestellt werden, der sich nicht auf einen Dienstvertrag bezieht.An endpoint that is exposed by the infrastructure to facilitate functionality that is needed or provided by the service that does not relate to a service contract. Ein Dienst könnte z. B. einen Infrastrukturendpunkt aufweisen, der Metadateninformationen bereitstellt.For example, a service might have an infrastructure endpoint that provides metadata information.

Adresseaddress
Gibt den Speicherort an, an dem Nachrichten empfangen werden.Specifies the location where messages are received. Sie wird als ein Uniform Resource Identifier (URI) angegeben.It is specified as a Uniform Resource Identifier (URI). Der URI-Schemateil benennt den Transportmechanismus, der zum Erreichen der Adresse verwendet wird, z. B. HTTP und TCP.The URI schema part names the transport mechanism to use to reach the address, such as HTTP and TCP. Der hierarchische Teil des URI enthält einen eindeutigen Ort, dessen Format vom Transportmechanismus abhängt.The hierarchical part of the URI contains a unique location whose format is dependent on the transport mechanism.

Die Endpunktadresse ermöglicht es, für jeden Endpunkt in einem Dienst eindeutige Endpunktadressen zu erstellen oder unter bestimmten Voraussetzungen eine Adresse für mehrere Endpunkte zu verwenden.The endpoint address enables you to create unique endpoint addresses for each endpoint in a service or, under certain conditions, to share an address across endpoints. Im folgenden Beispiel wird veranschaulicht, wie eine Adresse das HTTPS-Protokoll mit einem nicht standardmäßigen Anschluss verwendet:The following example shows an address using the HTTPS protocol with a non-default port:

HTTPS://cohowinery:8005/ServiceModelSamples/CalculatorService  

Bindungbinding
Definiert, wie ein Endpunkt mit der Umgebung kommuniziert.Defines how an endpoint communicates to the world. Sie besteht aus einer Reihe von Komponenten namens "Bindungselemente", die als Kommunikationsinfrastruktur aufeinander "gestapelt" werden.It is constructed of a set of components called binding elements that "stack" one on top of the other to create the communication infrastructure. Eine Bindung definiert zumindest das Transportprotokoll (z. B. HTTP oder TCP) und die verwendete Codierung (z. B. Text oder binär).At the very least, a binding defines the transport (such as HTTP or TCP) and the encoding being used (such as text or binary). Eine Bindung kann Bindungselemente enthalten, die Details wie die Sicherheitsmechanismen zum Schützen von Nachrichten oder das von einem Endpunkt verwendete Nachrichtenmuster angeben.A binding can contain binding elements that specify details like the security mechanisms used to secure messages, or the message pattern used by an endpoint. Weitere Informationen finden Sie unter Konfigurieren von Services.For more information, see Configuring Services.

Bindungselement (binding element)binding element
Stellt einen bestimmten Teil der Bindung dar, z. B. einen Transport, eine Codierung, eine Implementierung eines Protokolls auf Infrastrukturebene (z. B. WS-ReliableMessaging) oder eine andere Komponente des Kommunikationsstapels.Represents a particular piece of the binding, such as a transport, an encoding, an implementation of an infrastructure-level protocol (such as WS-ReliableMessaging), or any other component of the communication stack.

Verhaltenbehaviors
Eine Komponente, die verschiedene Laufzeitaspekte eines Diensts, eines Endpunkts, eines bestimmten Vorgangs oder eines Clients steuert.A component that controls various run-time aspects of a service, an endpoint, a particular operation, or a client. Verhalten werden gemäß ihrem Umfang gruppiert: allgemeine Verhalten, die alle Endpunkte global beeinflussen, Dienstverhalten, die nur dienstbezogene Aspekte beeinflussen, Endpunktverhalten, die nur endpunktbezogene Eigenschaften beeinflussen, und Verhalten auf Vorgangsebene, die bestimmte Vorgänge beeinflussen.Behaviors are grouped according to scope: common behaviors affect all endpoints globally, service behaviors affect only service-related aspects, endpoint behaviors affect only endpoint-related properties, and operation-level behaviors affect particular operations. Eines der Dienstverhalten ist beispielsweise die Drosselung, die festlegt, wie ein Dienst reagiert, wenn zu viele Nachrichten seine Abwicklungskapazitäten zu überlasten drohen.For example, one service behavior is throttling, which specifies how a service reacts when an excess of messages threaten to overwhelm its handling capabilities. Ein Endpunktverhalten steuert wiederum nur Aspekte, die für Endpunkte relevant sind, u. a. wie und wo eine Sicherheitsanmeldeinformation zu finden ist.An endpoint behavior, on the other hand, controls only aspects that are relevant to endpoints, such as how and where to find a security credential.

Vom System bereitgestellte Bindungen (system-provided bindings)system-provided bindings
WCFWCF bietet einige vom System bereitgestellte Bindungen. includes a number of system-provided bindings. Dies sind Auflistungen von Bindungselementen, die für bestimmte Szenarien optimiert werden.These are collections of binding elements that are optimized for specific scenarios. WSHttpBinding ist beispielsweise für die Interoperabilität mit Diensten vorgesehen, die verschiedene WS-*-Spezifikationen implementieren.For example, the WSHttpBinding is designed for interoperability with services that implement various WS-* specifications. Diese vordefinierten Bindungen sparen Zeit, da sie nur diejenigen Optionen bereitstellen, die auf das spezifische Szenario korrekt angewendet werden können.These predefined bindings save time by presenting only those options that can be correctly applied to the specific scenario. Wenn eine vordefinierte Bindung die Anforderungen nicht erfüllt, können Sie eine eigene benutzerdefinierte Bindung erstellen.If a predefined binding does not meet your requirements, you can create your own custom binding.

Konfiguration gegen Codierungconfiguration versus coding
Eine Anwendung kann entweder über die Codierung, über die Konfiguration oder über eine Kombination aus beidem gesteuert werden.Control of an application can be done either through coding, through configuration, or through a combination of both. Die Konfiguration bietet den Vorteil, dass auch andere Personen als der Entwickler (z. B. ein Netzwerkadministrator) die Client- und die Dienstparameter festlegen können, nachdem der Code geschrieben wurde, ohne dass eine neue Kompilierung erforderlich wäre.Configuration has the advantage of allowing someone other than the developer (for example, a network administrator) to set client and service parameters after the code is written and without having to recompile. Die Konfiguration ermöglicht nicht nur das Festlegen von Werten wie Endpunktadressen, sondern auch eine weitere Steuerung durch die Möglichkeit, Endpunkte, Bindungen und Verhalten hinzuzufügen.Configuration not only enables you to set values like endpoint addresses, but also allows further control by enabling you to add endpoints, bindings, and behaviors. Die Codierung ermöglicht es dem Entwickler, die genaue Kontrolle über alle Komponenten des Diensts oder Clients zu behalten, und alle Einstellungen, die über die Konfiguration gemacht werden, können überprüft und bei Bedarf vom Code aufgehoben werden.Coding allows the developer to retain strict control over all components of the service or client, and any settings done through the configuration can be inspected and if needed overridden by the code.

Dienstvorgangservice operation
Ein Ablauf, der im Code eines Diensts definiert ist und der die Funktionalität für einen Vorgang implementiert.A procedure defined in a service's code that implements the functionality for an operation. Dieser Vorgang wird anderen Clients auf einem WCFWCF-Client als Methode verfügbar gemacht.This operation is exposed to clients as methods on a WCFWCF client. Diese Methode kann einen Wert zurückgeben und eine optionale Anzahl an Argumenten übernehmen, oder sie kann keine Argumente übernehmen und keine Antwort zurückgeben.The method can return a value, and can take an optional number of arguments, or take no arguments, and return no response. Beispielsweise kann ein Vorgang, der als ein einfaches "Hallo" fungiert, als Benachrichtigung über die Präsenz eines Clients und zum Starten einer Reihe von Vorgängen verwendet werden.For example, an operation that functions as a simple "Hello" can be used as a notification of a client's presence and to begin a series of operations.

Dienstvertrag (service contract)service contract
Verknüpft mehrere verwandte Vorgänge zu einer einzigen Funktionseinheit.Ties together multiple related operations into a single functional unit. Der Vertrag kann Einstellungen auf Dienstebene definieren, z. B. den Namespace des Diensts, einen entsprechenden Rückrufvertrag und andere derartige Einstellungen.The contract can define service-level settings, such as the namespace of the service, a corresponding callback contract, and other such settings. In den meisten Fällen wird der Vertrag definiert, indem eine Schnittstelle in der gewünschten Programmiersprache erstellt wird und das Attribut ServiceContractAttribute auf die Schnittstelle angewendet wird.In most cases, the contract is defined by creating an interface in the programming language of your choice and applying the ServiceContractAttribute attribute to the interface. Der tatsächliche Dienstcode ergibt sich aus der Implementierung der Schnittstelle.The actual service code results by implementing the interface.

Vorgangsvertrag (operation contract)operation contract
Ein Vorgangsvertrag definiert die Parameter und den Rückgabetyp eines Vorgangs.An operation contract defines the parameters and return type of an operation. Beim Erstellen einer Schnittstelle, die den Dienstvertrag definiert, wird ein Vorgangsvertrag angegeben, indem das Attribut OperationContractAttribute auf jede Methodendefinition angewendet wird, die Teil des Vertrags ist.When creating an interface that defines the service contract, you signify an operation contract by applying the OperationContractAttribute attribute to each method definition that is part of the contract. Die Vorgänge können so gestaltet werden, dass sie eine einzelne Nachricht annehmen und eine einzelne Nachricht zurückgeben oder dass sie einen Typensatz annehmen und einen Typ zurückgeben.The operations can be modeled as taking a single message and returning a single message, or as taking a set of types and returning a type. Im letzteren Fall bestimmt das System das Format der Nachrichten, die für diesen Vorgang ausgetauscht werden müssen.In the latter case, the system will determine the format for the messages that need to be exchanged for that operation.

Nachrichtenvertragmessage contract
Beschreibt das Format einer Nachricht.Describes the format of a message. Er erklärt beispielsweise, ob Nachrichtenelemente in Header oder in den Text gehören, welches Sicherheitsniveau auf welche Elemente der Nachricht angewendet werden soll usw.For example, it declares whether message elements should go in headers versus the body, what level of security should be applied to what elements of the message, and so on.

Fehlervertrag (fault contract)fault contract
Kann einem Dienstvorgang zugeordnet werden, um Fehler anzumerken, die dem Anrufer zurückgegeben werden können.Can be associated with a service operation to denote errors that can be returned to the caller. Einem Vorgang können keine oder mehrere Fehler zugeordnet werden.An operation can have zero or more faults associated with it. Diese Fehler sind SOAP-Fehler, die als Ausnahmen im Programmiermodell erstellt werden.These errors are SOAP faults that are modeled as exceptions in the programming model.

Datenvertragdata contract
Die Beschreibungen in Metadaten der Datentypen, die von einem Dienst verwendet werden.The descriptions in metadata of the data types that a service uses. Dies ermöglicht die Interoperation mit dem Dienst.This enables others to interoperate with the service. Die Datentypen können in einem beliebigen Teil der Nachricht verwendet werden, z. B. als Parameter oder Rückgabetypen.The data types can be used in any part of a message, for example, as parameters or return types. Wenn der Dienst nur einfache Typen verwendet, ist es nicht erforderlich, unbedingt Datenverträge zu verwenden.If the service is using only simple types, there is no need to explicitly use data contracts.

Hostinghosting
Ein Dienst muss in einem Prozess gehostet werden.A service must be hosted in some process. Ein Host ist eine Anwendung, die die Lebensdauer des Diensts kontrolliert.A host is an application that controls the lifetime of the service. Dienste können selbst gehostet werden oder durch einen vorhandenen Hostingprozess verwaltet werden.Services can be self-hosted or managed by an existing hosting process.

Lokal gehosteter Dienstself-hosted service
Ein Dienst, der innerhalb einer vom Entwickler erstellten Prozessanwendung ausgeführt wird.A service that runs within a process application that the developer created. Der Entwickler kontrolliert seine Lebensdauer, legt die Eigenschaften des Diensts fest, öffnet den Dienst (wodurch dieser in einen Überwachungsmodus versetzt wird) und schließt den Dienst.The developer controls its lifetime, sets the properties of the service, opens the service (which sets it into a listening mode), and closes the service.

Hostingprozesshosting process
Eine zum Hosten von Diensten entwickelte Anwendung.An application that is designed to host services. Dazu gehören Internetinformationsdienste (IIS), Windows Activation Services (WAS) und Windows-Dienste.These include Internet Information Services (IIS), Windows Activation Services (WAS), and Windows Services. In diesen gehosteten Szenarien kontrolliert der Host die Lebensdauer des Diensts.In these hosted scenarios, the host controls the lifetime of the service. Mit IIS kann beispielsweise ein virtuelles Verzeichnis eingerichtet werden, das die Assembly- und die Konfigurationsdatei des Diensts enthält.For example, using IIS you can set up a virtual directory that contains the service assembly and configuration file. Wenn eine Nachricht empfangen wird, startet IIS den Dienst und kontrolliert seine Lebensdauer.When a message is received, IIS starts the service and controls its lifetime.

Instanziierunginstancing
Ein Dienst verfügt über ein Instanziierungsmodell.A service has an instancing model. Es gibt drei Instanziierungsmodelle: "einzeln", bei dem ein einzelnes CLR-Objekt alle Clients bedient; "pro Anruf", bei dem ein neues CLR-Objekt erstellt wird, um jeden Client-Anruf abzuarbeiten; und "pro Sitzung", bei dem ein Satz von CLR-Objekten erstellt wird – einer für jede einzelne Sitzung.There are three instancing models: "single," in which a single CLR object services all the clients; "per call," in which a new CLR object is created to handle each client call; and "per session," in which a set of CLR objects is created, one for each separate session. Die Wahl des Instanziierungsmodells hängt von den Anwendungsanforderungen und dem erwarteten Nutzungsmuster des Diensts ab.The choice of an instancing model depends on the application requirements and the expected usage pattern of the service.

Clientanwendung (client application)client application
Ein Programm, das Nachrichten mit einem oder mehreren Endpunkten austauscht.A program that exchanges messages with one or more endpoints. Die Clientanwendung beginnt mit der Erstellung einer Instanz eines WCFWCF-Clients und dem Aufrufen von Methoden des WCFWCF-Clients.The client application begins by creating an instance of a WCFWCF client and calling methods of the WCFWCF client. Es sollte beachtet werden, dass eine einzelne Anwendung sowohl ein Client als auch ein Dienst sein kann.It is important to note that a single application can be both a client and a service.

Kanal (channel)channel
Ein konkrete Implementierung eines Bindungselements.A concrete implementation of a binding element. Die Bindung stellt die Konfiguration dar, und der Kanal ist die Implementierung, die mit dieser Konfiguration verknüpft ist.The binding represents the configuration, and the channel is the implementation associated with that configuration. Deshalb ist jedem Bindungselement ein Kanal zugeordnet.Therefore, there is a channel associated with each binding element. Kanäle werden übereinander gestapelt, um die konkrete Implementierung der Bindung zu erstellen: den Kanalstapel.Channels stack on top of each other to create the concrete implementation of the binding: the channel stack.

WCFWCF-Client client
Ein Clientanwendungskonstrukt, das die Dienstvorgänge als Methoden verfügbar macht (in der gewünschten .NET Framework.NET Framework-Programmiersprache, u. a. Visual Basic oder Visual C#).A client-application construct that exposes the service operations as methods (in the .NET Framework.NET Framework programming language of your choice, such as Visual Basic or Visual C#). Jede Anwendung kann einen WCFWCF-Client hosten, einschließlich einer Anwendung, die einen Dienst hostet.Any application can host a WCFWCF client, including an application that hosts a service. Deshalb ist es möglich, einen Dienst zu erstellen, der WCFWCF-Clients anderer Dienste einschließt.Therefore, it is possible to create a service that includes WCFWCF clients of other services.

Ein WCFWCF Client kann automatisch generiert werden, mithilfe der ServiceModel Metadata Utility Tool (Svcutil.exe) und zeigen sie auf einen ausgeführten Dienst, der Metadaten veröffentlicht.A WCFWCF client can be automatically generated by using the ServiceModel Metadata Utility Tool (Svcutil.exe) and pointing it at a running service that publishes metadata.

Metadatenmetadata
In einem Dienst werden von Metadaten die Merkmale des Diensts beschrieben, die eine externe Entität zur Kommunikation mit dem Dienst verstehen muss.In a service, describes the characteristics of the service that an external entity needs to understand to communicate with the service. Metadaten genutzt werden kann, indem Sie die ServiceModel Metadata Utility Tool (Svcutil.exe) zum Generieren einer WCFWCF Client und eine dazugehörige Konfiguration, die eine Clientanwendung für die Interaktion mit dem Dienst verwenden können.Metadata can be consumed by the ServiceModel Metadata Utility Tool (Svcutil.exe) to generate a WCFWCF client and accompanying configuration that a client application can use to interact with the service.

Zu den vom Dienst verfügbar gemachten Metadaten gehören XML-Schemadokumente, die den Datenvertrag des Diensts definieren, und WSDL-Dokumente, die die Methoden des Diensts beschreiben.The metadata exposed by the service includes XML schema documents, which define the data contract of the service, and WSDL documents, which describe the methods of the service.

Bei Aktivierung werden die Metadaten für den Dienst automatisch von WCFWCF erstellt, indem der Dienst und seine Endpunkte überprüft werden.When enabled, metadata for the service is automatically generated by WCFWCF by inspecting the service and its endpoints. Zum Veröffentlichen von Metadaten von einem Dienst aus müssen Sie das Metadatenverhalten explizit aktivieren.To publish metadata from a service, you must explicitly enable the metadata behavior.

Sicherheitsecurity
In WCFWCF gehören zur Sicherheit Vertraulichkeit (Verschlüsselung von Nachrichten zum Verhindern von Lauschangriffen), Integrität (Erkennung manipulierter Nachrichten), Authentifizierung (Validierung von Servern und Clients) und Autorisierung (Kontrolle des Zugriffs auf Ressourcen).In WCFWCF, includes confidentiality (encryption of messages to prevent eavesdropping), integrity (the means for detection of tampering with the message), authentication (the means for validation of servers and clients), and authorization (the control of access to resources). Diese Funktionen werden entweder durch die Nutzung vorhandener Sicherheitsmechanismen wie TLS über HTTP (auch als "HTTPS" bekannt) oder durch die Implementierung von verschiedenen WS-*-Sicherheitsspezifikationen geboten.These functions are provided by either leveraging existing security mechanisms, such as TLS over HTTP (also known as HTTPS), or by implementing one or more of the various WS-* security specifications.

Transportsicherheitsmodustransport security mode
Legt fest, dass Vertraulichkeit, Integrität und Authentifizierung über die Transportschichtmechanismen (wie HTTPS) gewährleistet werden.Specifies that confidentiality, integrity, and authentication are provided by the transport layer mechanisms (such as HTTPS). Bei Nutzung eines Transports wie HTTPS hat dieser Modus den Vorteil, dass er effizient und aufgrund seiner weiten Verbreitung im Internet gut verständlich ist.When using a transport like HTTPS, this mode has the advantage of being efficient in its performance, and well understood because of its prevalence on the Internet. Der Nachteil ist, dass diese Art von Sicherheit auf jeden Hop im Kommunikationspfad einzeln angewendet wird, was die Kommunikation anfällig für einen Man-In-The-Middle-Angriff (MITM-Angriff, Janusangriff) macht.The disadvantage is that this kind of security is applied separately on each hop in the communication path, making the communication susceptible to a "man in the middle" attack.

Nachrichtensicherheitsmodusmessage security mode
Gibt an, dass die Sicherheit durch die Implementierung eine oder mehrere der Sicherheitsspezifikationen bereitgestellt wird, wie z. B. die Spezifikation mit dem Namen Webdienstesicherheit: SOAP Message Security.Specifies that security is provided by implementing one or more of the security specifications, such as the specification named Web Services Security: SOAP Message Security. Jede Nachricht enthält die erforderlichen Mechanismen, um während ihrer Übertragung Sicherheit zu gewährleisten, und um den Empfängern die Möglichkeit zu bieten, Manipulationen zu erkennen und die Nachrichten zu entschlüsseln.Each message contains the necessary mechanisms to provide security during its transit, and to enable the receivers to detect tampering and to decrypt the messages. So ist die Sicherheit in jeder einzelnen Nachricht integriert, sodass End-to-End-Sicherheit über mehrere Hops gewährleistet ist.In this sense, the security is encapsulated within every message, providing end-to-end security across multiple hops. Da Sicherheitsinformationen Teil der Nachricht wird, ist es auch möglich, mehrere Arten von Anmeldeinformationen in die Nachricht aufzunehmen (diese werden als bezeichnet Ansprüche).Because security information becomes part of the message, it is also possible to include multiple kinds of credentials with the message (these are referred to as claims). Dieser Ansatz hat außerdem den Vorteil, dass die Nachricht sicher über jeden Transport übermittelt werden kann, u. a. auch über mehrere Transporte zwischen Ursprungs- und Zielort.This approach also has the advantage of enabling the message to travel securely over any transport, including multiple transports between its origin and destination. Der Nachteil dieses Ansatzes ist die Komplexität der eingesetzten kryptografischen Mechanismen, die zu Leistungsbeeinträchtigungen führen.The disadvantage of this approach is the complexity of the cryptographic mechanisms employed, resulting in performance implications.

Modus "Transport mit Nachrichtenanmeldeinformationen"transport with message credential security mode
Gibt die Verwendung der Transportschicht an, um Vertraulichkeit, Authentifizierung und Integrität der Nachrichten sicherzustellen, während jede der Nachrichten mehrere Anmeldeinformationen (Ansprüche) enthalten kann, die von den Empfängern der Nachricht benötigt werden.Specifies the use of the transport layer to provide confidentiality, authentication, and integrity of the messages, while each of the messages can contain multiple credentials (claims) required by the receivers of the message.

WS-*WS-*
Kurzform für die ständig steigende Zahl von Web Service (WS)-Spezifikationen wie WS-Sicherheit, WS-ReliableMessaging usw., die in WCFWCF implementiert sind.Shorthand for the growing set of Web Service (WS) specifications, such as WS-Security, WS-ReliableMessaging, and so on, that are implemented in WCFWCF.

Siehe auchSee Also

Was ist die Windows Communication Foundation?What Is Windows Communication Foundation
Windows Communication Foundation-ArchitekturWindows Communication Foundation Architecture
SicherheitsarchitekturSecurity Architecture