wcf - WCF NetTCPBinding 中的二进制序列化

标签 wcf strongly-typed-dataset nettcpbinding

我目前在 .Net 3.5 中有多个 WCF 服务,它们通过 NetTCP 绑定(bind)与客户端进行通信。我们从 WsHTTP 绑定(bind)切换到 NetTCP,以减少客户端和服务器之间的数据流量(NetTCP har 二进制编码传输)。

我们对结果并不满意(在我们的测试中仅减少了 30%),并且希望使用二进制序列化器而不是对象的默认 xml 序列化。

这会进一步减少有效负载吗?如何在 WCF 中实现二进制序列化?我们使用类型化数据集作为传输对象..

最佳答案

绝对没有讽刺的意思,但您应该认真考虑为服务的数据契约使用普通对象而不是数据集。强类型 Dataset 对象可能非常复杂(只需查看后面的代码),并且它的任何序列化在大小上都将非常庞大。 NetTcpBinding 已经使用了二进制序列化器,它应该产生更小的有效负载。作为替代方案,如果您尝试创建可查询/灵活的服务层,请考虑使用 resource-based service architecture相反。

如果您认为可以改进 Microsoft 的 netTcpBinding 二进制编码器,请查看此 MSDN post 中引用的示例代码。开始吧。

关于wcf - WCF NetTCPBinding 中的二进制序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7146550/

相关文章:

swift - 在 Swift 中进行身份验证的 Azure Api 应用

具有 OAuth 身份验证的 WCF 服务

.net - 为什么通过 net.tcp 比 HTTP 更难启用 SSL(传输安全)?

c# - WCF 异常记录

c# - 如何确定哪个 Windows Communication Foundation 服务正在使用给定端口?

.net - 如何在强类型数据集中将DBNull作为值包含在内?

c# - 即使 AllowDBNull = False,数据集也允许 Null 值?

WCF、双工回调、recieveTimeout netTcpBinding

c# - 使用非单向方法的 WCF 中的竞争条件