2

如果我WCF过去通过 eg 发送消息Http,而消息对于收件人来说太大了,我会在发件人处遇到错误,并且可以采取行动。

如果我WCF过去MSMQ(非事务性)发送消息并且消息对于收件人来说太大,它似乎消失了,并且我没有得到客户端或服务器端的任何指示。

有什么方法可以观察(并采取行动)此类事件吗?

4

1 回答 1

1

假设您的目标是一个 MSMQ(与 WCF 无关),这里有几项需要考虑。

  1. 要发布到 MSMQ 的单个消息的最大大小为 4Mb。
  2. 如果尝试将超过 4Mb 的消息发布到 MSMQ,您将收到以下错误:[System.ServiceModel.ExceptionDetail]:内部错误:资源不足,无法执行操作。
  3. 如果您的要求是将超过 4Mb 的消息发布到 MSMQ,那么解决方案很少,例如,
    • 使用 NServiceBus
    • 在发布过程中压缩消息,在检索过程中解压缩消息。
    • 实现 NServiceBus 逻辑,即将消息写入共享位置的文件,并将文件位置存储在消息中。
于 2013-12-19T16:31:17.713 回答