从服务结构返回 wcf 流 actors/services
Returning wcf stream from service fabric actors/services
我希望这是一个简单的问题。
我想创建一个服务集群来处理涉及任意数量的数千个字段的动态报告。据我所知,我不能将来自可靠参与者或服务的流用作 return 类型。我唯一的选择是 return 序列化字节数组还是将结果写到别处并指示客户端查询该资源,还是我遗漏了什么?
谢谢
这取决于您在服务中使用的通信堆栈。服务本身与通信协议无关。服务的实现可以插入任何通信堆栈:Web API、WCF、套接字,无所谓。
Reliable Actors是服务的特殊实现,作为服务实现,它指定了一个通信栈。在该通信堆栈中,request/response 有效负载必须是 DataContract 可序列化的,所以不,你不能 return 那里的流。
否则,如果您使用 WCF 与您的服务进行通信,那么您将受到 WCF 功能的限制。
如果您正在使用服务远程处理(您的服务实现 IService 并且您使用 ServiceProxy 远程调用它的方法),那么不,您不能 return 服务方法的流。您需要 return DataContract 可序列化的内容。
如果您在服务中使用 Web API,您可以在控制器操作方法中获取 HTTP 响应流并将数据流回,而无需为其分配字节缓冲区。
或者你可以实现自己的通信协议,随心所欲。
我希望这是一个简单的问题。
我想创建一个服务集群来处理涉及任意数量的数千个字段的动态报告。据我所知,我不能将来自可靠参与者或服务的流用作 return 类型。我唯一的选择是 return 序列化字节数组还是将结果写到别处并指示客户端查询该资源,还是我遗漏了什么?
谢谢
这取决于您在服务中使用的通信堆栈。服务本身与通信协议无关。服务的实现可以插入任何通信堆栈:Web API、WCF、套接字,无所谓。
Reliable Actors是服务的特殊实现,作为服务实现,它指定了一个通信栈。在该通信堆栈中,request/response 有效负载必须是 DataContract 可序列化的,所以不,你不能 return 那里的流。
否则,如果您使用 WCF 与您的服务进行通信,那么您将受到 WCF 功能的限制。
如果您正在使用服务远程处理(您的服务实现 IService 并且您使用 ServiceProxy 远程调用它的方法),那么不,您不能 return 服务方法的流。您需要 return DataContract 可序列化的内容。
如果您在服务中使用 Web API,您可以在控制器操作方法中获取 HTTP 响应流并将数据流回,而无需为其分配字节缓冲区。
或者你可以实现自己的通信协议,随心所欲。