Определите методы для получения и возврата типа данных Stream
и обязательно настройте привязку для использования TransferMode.Streamed
. Также убедитесь, что вы внимательно относитесь к кодировке, которую вы используете для привязки. Если вы используете Text
, все двоичные данные будут закодированы в base64, что приведет к увеличению размера всех ваших запросов / ответов. Если вы используете MTOM, большие двоичные данные, такие как потоки, будут передаваться за пределы тела SOAP как отдельный объект тела HTTP в виде чистых незакодированных двоичных данных. Двоичное кодирование, очевидно, обеспечит наиболее оптимальную передачу по проводам, однако это не стандартный формат, поэтому взаимодействие с другими стеками, отличными от WCF, будет невозможно. Если вы чистый WCF, вы не можете сравниться с производительностью двоичного кодирования сообщений, поэтому я настоятельно рекомендую его или использовать MTOM, если вам требуется взаимодействие.
Кроме того, я до сих пор предположил, что вы пытаетесь сделать это в рамках SOAP. Если вы используете REST, то кодирование XML против MTOM против двоичного кода будет облегчено, потому что вы можете просто отправлять / получать чисто двоичное тело HTTP с соответствующим типом содержимого. Все зависит от того, что вы пытаетесь сделать