У меня проблема с отправкой большого xml с клиента в службу WCF net.tcp, а клиент на определенных машинах выдает исключение из памяти при вызове метода, который я не могу воспроизведите на моем локальном компьютере: Сообщение об исключении: Не удалось выделить буфер управляемой памяти 33554432 байт. Объем доступной памяти может быть низким.Служба WCF NetTcp и потоковая передачаmode
Так что, прочитав способы решения этого вопроса, это было похоже на то, что поток швов был правильным. Поэтому я изменил привязку на клиенте и обслуживание соответственно:
<netTcpBinding>
<binding name="NetTcpBinding_IPricerDataService" closeTimeout="00:10:00" transferMode="Streamed"
openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" />
</netTcpBinding>
Однако, я был под впечатлением, что это означало также изменение сигнатуры метода службы принять параметр потока: http://msdn.microsoft.com/en-us/library/ms789010(v=vs.110).aspx
I не сделали этого, я оставил сигнатуры метода, поскольку они были изначально, но мой клиент все еще может вызывать метод службы, как раньше, и все работает так, как ожидалось.
Означает ли это, что потоковый трансформатор используется не так, как ожидалось, или мне не нужно менять сигнатуры метода для поддержки потоковой передачи? Любые идеи, как я могу действительно проверить?
@ DanielKelley Как это не отвечает на вопрос? «Означает ли это, что потоковый трансформатор не используется, как ожидалось, или мне не нужно менять сигнатуры методов для поддержки потоковой передачи?», А также некоторые отклонения от того, что буфер не выделяется. – aevitas
@ DanielKelley Спасибо, я отредактирую ответ, чтобы просто указать «Да, вы должны». как кажется, это то, что вам нужно. Не стесняйтесь, если вы чувствуете, что не отвечает на вопрос. – aevitas
@ DanielKelley Спасибо, я разработал свой ответ. – aevitas