我希望将 100 MB 的数据从客户端应用程序传输到 WCF 服务。我已经设置了读者配额在我的 web.config 中,但我读了一篇他们建议的文章请求限制这在中进行了简要解释http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits确切的属性是 maxAllowedContentLength。
我想知道有什么区别,拜托。
读者配额
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="PowerTransmissionBinding" closeTimeout="01:00:00" openTimeout="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="StreamedRequest" messageEncoding="Mtom">
<readerQuotas maxDepth="32" maxBytesPerRead="200000000"
maxArrayLength="200000000" maxStringContentLength="200000000" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
请求限制
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2000000000" />
</requestFiltering>
</security>
请求限制是网络服务器级别的设置。当请求的 ContentLength(或 url 长度)超过您设置的限制时 - 请求立即被拒绝并出现 404 错误,它将not甚至进入WCF管道。所以,这个配置设置与WCF完全无关。请注意,它限制了请求的总长度,请求中的内容并不重要。
读者配额是WCF级别设置。它对 WCF 端点可以处理的 SOAP 消息的大小施加了各种限制。请注意,现在它是关于 SOAP(so、xml)消息,而不是关于请求的总长度。这些设置基本上是防止使用以特殊方式准备的 xml 消息对您的服务进行各种类型的拒绝服务攻击所必需的。
最大数组长度- 读取消息时,XML 读取器可能返回的数组的最大大小。这包括字节数组。如果 WCF 读取的数组大于此值,它将停止读取消息并拒绝请求。如果您使用类似的方法将文件附加到 WCF 请求byte[]
数据联系人类的属性 - 这是限制此类文件大小的设置(但最好不要以这种方式附加文件)。
maxDepth- 消息中 xml 元素的最大嵌套数。
最大名称表字符数- reader 在读取消息时会在内存中存储一些信息(例如命名空间和命名空间前缀)。这限制了此类内存表的大小。
最大字符串内容长度- SOAP 消息中字符串的最大长度。假设您有带有某些字符串 DataMember 属性的 DataContract 类。如果在反序列化期间发生该字符串超出限制 - 消息将被拒绝。
每次读取的最大字节数- 基本上任何 xml 元素(包括它的所有子元素)的最大长度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)