明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

使用WCF传输大数据时,我们都会碰到如题中出现的错误信息,出现这个问题是因为WCF本身的安全机制导致的,限制了客户端与服务器资源传输大小,那我们如何还解决这个问题呢?

针对这个问题,我们要分发送、接受两个方面来解决。

发送大数据:在WCF服务端解决

                 NetTcpBinding binding =  new NetTcpBinding();

      binding.MaxReceivedMessageSize= 2147483647(更改这个数字) ;

接受大数据:在WCF客户端解决

      NetTcpBinding binding =  new NetTcpBinding();

      binding.ReaderQuotas = new XmlDictionaryReaderQuotas() { MaxStringContentLength = 2147483647(更改这个数字) };


我们即可以使用如上述通过代码配置,我们同样也可以使用配置文件进行配置(在binding节中)。

public static System.ServiceModel.BasicHttpBinding Binding()
        {
            //读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
            System.ServiceModel.BasicHttpBinding bing = new System.ServiceModel.BasicHttpBinding();
            bing.ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas() { MaxStringContentLength = 2147483647 }; //(更改这个数字) 
            return bing;
        }

 

public static API.iClient api = new API.iClient(Binding(), new System.ServiceModel.EndpointAddress("http://192.168.1.11:4417/WebService.svc"));