将 DTO 与 WCF 结合使用
Posted
技术标签:
【中文标题】将 DTO 与 WCF 结合使用【英文标题】:using DTO with WCF 【发布时间】:2012-07-16 00:55:03 【问题描述】:我有一个与 POCO 实体映射的 EFM,m 使用 WCF 进行业务逻辑
在 WCF 中调用此函数时:-
public List<DTO.Product> Viewall()
var val= _repositoryprod.GetAll().Take(2).ToList();
return val;
我收到一个错误套接字连接已被释放。
我尝试序列化 DTO 类,甚至使用 [DataContract] 和 [DataMember] 属性,但没有成功。
M 使用 TCP 绑定并且只是最大化每个值仍然为什么它显示套接字连接被处理.....
绑定名称="netTcpStreaming" transferMode="Streamed" maxReceivedMessageSize="4294967296" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" openTimeout="01:00:00" receiveTimeout="01:00:00" closeTimeout=" 01:00:00" sendTimeout="01:00:00" maxConnections="100" listenBacklog="100"
我做错了什么??
【问题讨论】:
启用跟踪并检查是否可以找到一些东西 【参考方案1】:此错误可能是由于 maxItemsInObjectGraph 的默认限制为 65536。请尝试更改该限制并重试!
【讨论】:
很好尝试,也设置了 maxItemsInObjectGraph="2147483647" @Ankit 这个配置应该在客户端和服务器端都设置 那么,您应该首先启用跟踪以获取更多信息blogs.msdn.com/b/madhuponduru/archive/2006/05/18/601458.aspx 另外,检查您是否正在使用任何明确处理连接的“使用”块 @Boomer ok der 似乎在序列化过程中出现了一些问题,我有一些类型,如十进制、短、可为空的 int、bool 和字符串。是否有任何des造成问题【参考方案2】:得到解决方案,与 EFM + POCO 一样,您需要在 WCF 操作合同中添加 ApplyDataContractResolver 属性
只要按照这个演练,你就完成了
http://msdn.microsoft.com/en-us/library/ee705457.aspx
【讨论】:
以上是关于将 DTO 与 WCF 结合使用的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET 应用程序中 WCF、DAO 和 DTO 层之间的交互
在 WPF 智能客户端应用程序中使用 WCF DTO 时理解 MVVM 使用的问题