在某些情况下,我们需要在两个 Service Fabric 服务之间传递大量数据。
我们将第一个服务称为“监视器”,将第二个服务称为“搜索”。
Monitor 实现了一个 Actor,它定期调用 Search 并对结果执行某些操作。
Monitor actor 接口(interface)和 Search 远程服务接口(interface)都具有以下属性:
[assembly: FabricTransportActorRemotingProvider(RemotingListener = RemotingListener.V2Listener, RemotingClient = RemotingClient.V2Client, MaxMessageSize = 1073741824)]
据我了解,基于this question , this API documentation ,和this discussion ,这应该有效。然而事实并非如此。
对搜索的调用有效,但监控在调用返回时抛出“Fabric 消息太大”。
有人可以帮忙吗?我正要去找一份挖沟工的工作。
最佳答案
感谢 Hans Passant 提出 Remy 在 this link 中建议的替代方案.
我最初拒绝了这个建议,因为在第一次回应该建议后,有人立即表示他们正在使用 Actor,因此答案无法使用。
事实证明,只需添加
<Section Name="TransportSettings">
<Parameter Name="MaxMessageSize" Value="1073741824" />
</Section>
Monitor Actor 项目的 Settings.xml 文件解决了该问题。
关于c# - 即使为 Assembly 设置 MaxMessageSize 后,Fabric Message 仍然太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724744/