起因:
使用.net4.5建立了一个空白的WCF服务。默认使用的绑定配置是basicHttpsBinding。
问题发现:
1、用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHttpBinding。
2、因为需要单次传递大批量数据,所以修改绑定配置,如下:
<basicHttpBinding> <binding name="BasicHttpBinding_IService" closeTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" > <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> </binding> </basicHttpBinding>
3、运行测试,总是提示“413 Request Entity Too Large”。网上查找资料,基本都是说修改默认的Size,默认为4M, 修改到足够大就可以了。但是我明明已经在服务端和客户端都改了啊???
问题解决:
研究了很久才解决,直接说结果吧。
在.net 4.5的框架下,默认生成的绑定配置是basicHttpsBinding,是Https,多了一个S。
然而我在服务端修改的是HTTPS里的绑定配置,没写HTTP的绑定配置,而在客户端,则是用的HTTP。 所以最终使用的是默认的HTTP配置,大小是4M,数据量一大,自然报错。
说到这里,解决方法就很明显了。
结尾:
HTTP方式效率还是低,明天使用TCP试试。
时间: 2024-12-12 05:22:08