Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Senden und Empfangen von rohen Binärdaten mit Windows Communication Foundation (WCF) ist konfiguriert mit ByteStreamMessageEncodingBindingElement.
Bytestream-Nachrichtenencoder-Architektur
Der von WCF verwendete binäre Nachrichten-Encoder verfügt nicht über die Möglichkeit, die zugrunde liegenden Binärdaten in der Nachricht zu verarbeiten, zu validieren oder zu identifizieren. Das Datenpaket wird in XML codiert, gesendet, empfangen und decodiert. Der Encoder verarbeitet die Daten nach der Übergabe an den Transport und vor dem Senden der Nachricht an die Nachrichtenwarteschlange. Funktionell umschließt der binäre Encoder die Nachrichtendaten in <binary>
Elemente zum Senden und Entfernen der Elemente, nachdem die Nachricht empfangen wurde.
Verwenden des Bytestream-Nachrichtenencoders
Das folgende Beispiel zeigt einen Dienstvertrag, der den Bytestream-Nachrichtenencoder implementiert.
[OperationContract]
Void Myfunction(Stream stream);
Das folgende Beispiel zeigt den aufgerufenen Dienst.
proxy.MyFunction(stream);
Bei der Verwendung eines Diensts, der eine Nachrichteninfrastruktur implementiert (z. B. einen Router), wird die Nachricht verarbeitet, ohne sie zu prüfen, zu validieren oder anderweitig mit ihr zu interagieren, wie im folgenden Beispiel gezeigt wird.
[OperationContract]
void ProcessMessage(Message message) ;
Szenarien
Der Byte Stream Encoder ist in den folgenden Szenarien nützlich.
Übertragen eines JPEG-Bilds zwischen Computern mit WCF. In diesem Szenario erfolgt das Bild durch den Transport von einer externen Quelle, und die gesendeten Daten sind die rohen Bytes, aus denen das Bild besteht. Ein Dienst empfängt die Binärdaten und zeigt das Bild an.
Lesen von Informationen aus einer Meldungswarteschlange und Verarbeiten der Informationen. Die Nachricht wird von einem Nachrichtenwarteschlangen-Manager gelesen und über den Nachrichtenwarteschlangenkanal weitergeleitet, um verarbeitet zu werden. Der Meldungswarteschlangenkanal fungiert im WCF-Kanalstapel als Warteschlangen-Manager.
Im Falle des Sendens einer Nachricht über einen Nachrichtenwarteschlangenkanal hat der Absender keine Kontrolle über die Bytes, die vom Warteschlangen-Manager empfangen wurden. Wenn der empfangende Prozess keine Möglichkeit zum Lesen unformatierter Bytes hat, wird die Nachricht als schlecht formatiert empfangen und nicht verarbeitet. es wird davon ausgegangen, dass der empfangende Prozess die Möglichkeit hat, die empfangenen Bytes wieder in ein verwendbares Format zu übersetzen.