即使在为 Assembly 设置 MaxMessageSize 之后,Fabric Message 仍然太大

Fabric Message is too large even after setting MaxMessageSize for Assembly

在某些情况下,我们需要在两个 Service Fabric 服务之间传递大量数据。

让我们调用第一个服务 Monitor 和第二个 Search。

Monitor 实现了一个 Actor,它定期调用 Search 并对结果做一些事情。

Monitor actor接口和Search remoting service接口都具有以下属性:

[assembly: FabricTransportActorRemotingProvider(RemotingListener = RemotingListener.V2Listener, RemotingClient = RemotingClient.V2Client, MaxMessageSize = 1073741824)]

根据我的理解,基于 , this API documentation, and this discussion,这应该可行。然而,事实并非如此。

对 Search 的调用有效,但 Monitoring 在调用 return 时抛出 "Fabric Message is too large"。

有人可以帮忙吗?我要去打工了

感谢 Hans Passant 建议 Remy 在 this link 中建议的备选方案。

我最初驳回了这个建议,因为在对建议的第一次回应之后,有人立即表示他们正在使用 Actors,因此答案不可用。

事实证明,只需添加

<Section Name="TransportSettings">
    <Parameter Name="MaxMessageSize" Value="1073741824" />
</Section>

Monitor Actor 项目的 Settings.xml 文件解决了这个问题。