14
메시지를 클라이언트로 보내기 전에 메시지의 크기를 테스트 할 수있는 방법이 있습니까? 사물의 서비스 측면에서 최대 메시지 크기 할당량을 처리하고 싶습니다.WCF 메시지 크기
메시지를 클라이언트로 보내기 전에 메시지의 크기를 테스트 할 수있는 방법이 있습니까? 사물의 서비스 측면에서 최대 메시지 크기 할당량을 처리하고 싶습니다.WCF 메시지 크기
사용자 정의 MessageEncoder
을 작성하여 서비스 측에서 사용하고 인코딩 된 메시지 크기가 WriteMessage
개인지 확인할 수 있습니다.
하는 방식으로 방법을 this guide에 따라 오버라이드 (override) :
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));
}
당신은 당신이 뭘 하려는지에 대한 자세한 정보를 제공 할 수 있습니까? 메시지 관리자가 충분할 수도 있지만, 어떤 메시지 엔코더가 사용되는지 알지 못하면 정확한 크기를 알 수 없습니다. 또한 많은 메모리를 할당하고 메시지를 두 번 직렬화하면 메모리와 CPU가 매우 비쌉니다. – MattC