如何运用WCF实现上传数据大小的控制,取决于我们对WCF配置文件的修改方法。在这里就为大家详细介绍一下WCF配置文件的一些修改技巧,以达到文件大小控制的目的。#t#
默认情况下,wcf的服务端如果发生异常是不会将详细异常发送给客户端的,客户端只能提到以下笼络的提示异常信息:
由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 配置行为)以便将异常信息发送回客户端,或在打开每个 Microsoft .NET Framework 3.0 SDK 文档的跟踪的同时检查服务器跟踪日志。
于是做了一下修改:
- [ServiceBehavior(AddressFilterMode
AddressFilterMode = AddressFilterMode.
Any, IncludeExceptionDetailInFaults = true)] - public class CommunicationWithUnit :
IContractForUnit - {...}
其中第一个是去防火墙的,第二个是客户端显示错误详细信息的。
主要还是数据大小问题,于是又去解决:
在WCF配置文件进行修改.
旧的WCF配置文件:
< binding name="BasicHttpBinding_
ICentaMiddleService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout=
"00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal=
"false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBuffer
PoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding=
"utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
< readerQuotas maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096" maxName
TableCharCount="16384" />
< security mode="None">
< transport clientCredentialType=
"None" proxyCredentialType="None"
realm="" />
< message clientCredentialType=
"UserName" algorithmSuite="Default" />
< /security>
< /binding>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
新的WCF配置文件:
< binding name="BasicHttpBinding_
ICentaMiddleService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout=
"00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal=
"false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize=
"524288" maxReceivedMessageSize="9223372036854775807"
messageEncoding="Text" textEncoding=
"utf-8" transferMode="Streamed"
useDefaultWebProxy="true">
< readerQuotas maxDepth="6553500"
maxStringContentLength="2147483647"
maxArrayLength="6553500" maxBytesPerRead=
"6553500" maxNameTableCharCount="6553500" />
< security mode="None">
< transport clientCredentialType="None"
proxyCredentialType="None"
realm="" />
< message clientCredentialType="UserName"
algorithmSuite="Default" />
< /security>
< /binding>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
以上就是针对文件上传大小控制对WCF配置文件进行的修改方法。