Размер сообщения WCF - PullRequest
       4

Размер сообщения WCF

14 голосов
/ 24 февраля 2011

Есть ли способ проверить размер сообщения, прежде чем оно будет отправлено обратно клиенту? Я хотел бы обработать квоту максимального размера сообщения на стороне обслуживания вещей.

1 Ответ

1 голос
/ 28 июня 2016

Вы можете написать пользовательский MessageEncoder, использовать его на стороне службы и проверить размер закодированного сообщения в его WriteMessage методах.

Следуйте этому руководству и переопределите методы следующим образом:

public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
{
    var result = this.text.WriteMessage(message, maxMessageSize, bufferManager, messageOffset);

    // Encoded message check logic.
    Console.WriteLine("Message sent. Length=" + result.Count);

    return result;
}

public override void WriteMessage(Message message, Stream stream)
{
    var position = stream.Position;

    this.text.WriteMessage(message, stream);

    // Encoded message check logic.
    Console.WriteLine("Message sent. Length=" + (stream.Position - position));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...