Frage

Ich habe ein einzigartiges Problem und möchte die Fähigkeit, eine eingehende HTTP -Postanforderung zu verarbeiten, die willkürliche Binärdaten enthält.

Ich kann diese Daten derzeit mithilfe eines Standard -ASP.NET -Seitenhandlers oder in einem ASP -Webdienst verarbeiten. Ich möchte jedoch wissen, ob es möglich ist, eingehende Binärdaten in einem WCF -Dienst zu verarbeiten? Kann ich in den WCF -Verarbeitungsstapel einbohren, um die SOAP -Verarbeitung zu umgehen und die RAW -Nachricht in meinem eigenen Code zu verarbeiten?

Ich verstehe, dass dies die Veröffentlichung von WCF (WSDL was auch immer) bricht, aber das interessiert mich nicht wirklich.

-Jeff

War es hilfreich?

Lösung 4

Nachdem ich ein paar Wochen mit diesem Problem verbracht habe, habe ich so ziemlich eine endgültige Antwort:

Können Sie XML/Seife durch eine benutzerdefinierte binäre Serialisierung für WCF ersetzen?

Die kurze Antwort: Nein

Die lange Antwort: Ja, aber Sie müssen fast alle Schnittstellen der Transportschicht umschreiben, damit Sie genauso gut einen benutzerdefinierten IHTTPHandler erstellen und WCF alle zusammen vermeiden können.

Microsoft versucht, den SOAP -Standard zu befolgen (und der Standard ist meiner Meinung nach für dieses Problem verantwortlich). WCF/Seife scheint ein elegant geschichteter Protokoll und ein Transport zu sein, aber die Realität ist, dass es komplizierte Verbindungen zwischen den Schichten gibt. Dies bedeutet, dass WCF ein äußerst komplexes Kommunikationsprotokoll ist, das Transport, Sicherheit, Zuverlässigkeit, Veröffentlichung, Serialisierung und andere Merkmale bietet, die alle auf einer bestimmten Ebene voneinander abhängig sind. Wenn Sie nur einen Transportkanal wollen, fügt WCF/SOAP eine enorme Komplexität hinzu.

Ich bin sicher, ich könnte große Rants über Seife Ja/Nein beginnen, aber ich habe schließlich festgestellt, dass WCF/Seife nicht das ist, was ich für meine Bewerbung brauchte.

-Jeff

Andere Tipps

Verwenden Sie MTOM. MTOM ist ein Mechanismus zur Übertragung großer Binäranhänge mit Seifenmeldungen als Rohbytes, die kleinere Nachrichten ermöglichen. Einzelheiten siehe:

http://msdn.microsoft.com/en-us/library/aa395209.aspx

Sie können Streaming verwenden Msdn

Solange ich weiß, können Sie die Dienstbindung konfigurieren:http://www.c-sharpcorner.com/uploadfile/pjtheedays/bindwcf05032009012251am/bindwcf.aspx

Verwenden der nettcpbinding

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top