随笔分类 - WCF
摘要:1.在IIS里新建一个网站,命名为test,路径指向 e:\test;2.在 e:\test下创建目录bin;3.把Remoting远程对象的Project设置为类库,编译为DLL文件,然后复制到e:\test\bin;4.如果IIS是64位平台,而DLL是x86平台,需要修改IIS的应用程序池为x...
阅读全文
摘要:WCF 的 Service Instance(实例)有三种模式PerCall:每一次调用都创建一个实例,每一次调用结束后回收实例。此模式完全无状态。PerSession:调用者打开Channel时创建实例,当调用者关闭Channel时关闭实例,在关闭前,所有的调用都是同一个实例。此模式有Session,生命周期由调用者(通常是客户端)决定。Singleton:单例模式,在Service挂到Host上时,实例就已经创建了,此后所有的调用都使用此实例,且客户端关闭Channel时,并不回收实例。WCF默认使用PerSession。并发处理PerCall:不区分调用者,N次请求则创建N个实例处理。P
阅读全文
摘要:WCF传输EntityFramework 实体类的POCO 代理Windows Communication Foundation (WCF) 不能对代理进行直接序列化或反序列化,因为DataContractSerializer只能序列化和反序列化已知类型,而代理类型是未知类型。如果需要序列化 POCO 实体,请禁用代理创建或使用ProxyDataContractResolver类将代理对象作为原始 POCO 实体进行序列化。若要禁用代理创建,请将ProxyCreationEnabled属性设置为false。
阅读全文
摘要:错误Maximum number of items that can be serialized or deserialized in an object graph is '65536'. Change the object graph or increase the MaxItemsInObjectGraph quota.解决服务器端:ServiceHost host = new ServiceHost(serviceType, uri);foreach (IServiceBehavior behavior in host.Description.Behaviors){ i
阅读全文
摘要:错误内容:The server has rejected the client credentials.问题:WCF客户端存在域时,客户端通过TCP调用服务器端会报告此问题。解决:设置前台和后台的NetTcpBinding:NetTcpBinding binding = new NetTcpBinding();binding.Security.Mode = SecurityMode.None;binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
阅读全文
摘要:错误信息The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.原因传输的消息超过了WCF默认的尺寸。解决给binding设置消息尺寸。注意,必须前后台都要设置。binding.MaxReceivedMessageSize = int.MaxValue;
阅读全文
摘要:今天调用查询方法的时候,出了一个本地socket超时的错误,而这个查询方法昨天还是正常调用的。调试了一会,发现只要有返回值,就会报错,如果无返回值就是正常的。估计是序列化的时候有问题,以为是没给类加上[Serializable],后来加了也不行。经过逐步排查,发现是返回的类加了一个枚举类型的属性,但没有给这个枚举属性赋值导致的。错误内容The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by
阅读全文