Служба WCF с двоичными данными - PullRequest
2 голосов
/ 21 июня 2009

У меня есть уникальная проблема, и я хотел бы иметь возможность обрабатывать входящий запрос HTTP POST, который содержит произвольные двоичные данные.

В настоящее время я могу обрабатывать эти данные с помощью стандартного обработчика страниц ASP.NET или в веб-службе ASP, но я хочу знать, возможно ли обрабатывать поступающие двоичные данные в службе WCF? Могу ли я перейти к стеку обработки WCF, чтобы обойти обработку SOAP и обработать необработанное сообщение в своем собственном коде?

Я понимаю, что это нарушает публикацию WCF по контракту (независимо от WSDL), но меня это не волнует.

-Джефф

Ответы [ 4 ]

2 голосов
/ 21 июня 2009

Вы можете использовать потоковую передачу MSDN

2 голосов
/ 22 июня 2009

Рассмотрите возможность использования MTOM. MTOM - это механизм для передачи больших двоичных вложений с сообщениями SOAP в виде необработанных байтов, позволяющий передавать сообщения меньшего размера. Подробнее см .:

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

0 голосов
/ 17 июля 2009

Потратив несколько недель на эту проблему, у меня есть однозначный ответ:

Можете ли вы заменить XML / SOAP пользовательской двоичной сериализацией для WCF?

Краткий ответ: нет

Длинный ответ: да, но вам нужно переписать почти все интерфейсы транспортного уровня, чтобы вы могли просто создать собственный IHttpHandler и избежать WCF все вместе.

Microsoft, пытаясь следовать стандарту SOAP (и, по моему мнению, стандарт отвечает за эту проблему), нарушает одно из простых правил программирования -> разделение обязанностей по уровням. WCF / SOAP может показаться элегантным протоколом и транспортом, но реальность такова, что между уровнями существуют сложные соединения. Это означает, что WCF является чрезвычайно сложным протоколом связи, который обеспечивает транспорт, безопасность, надежность, публикацию, сериализацию и другие функции, которые все являются взаимозависимыми на некотором уровне. Если вам нужен только транспортный канал, WCF / SOAP добавляет огромную сложность.

Я уверен, что могу начать с SOAP, да / нет, но наконец-то понял, что WCF / SOAP - это не то, что мне нужно для моего приложения.

1013 * -Джефф *

0 голосов
/ 21 июня 2009

Насколько я знаю, вы можете настроить привязку службы: http://www.c -sharpcorner.com / UploadFile / pjthesedays / bindwcf05032009012251AM / bindwcf.aspx

Использование netTcpBinding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...