WCF web.config 中的 readerQuotas 与请求限制

2023-12-14

我希望将 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(使用前将#替换为@)

WCF web.config 中的 readerQuotas 与请求限制 的相关文章

随机推荐

  • 字典递归比较程序

    我创建了一个程序来比较两个 python 字典并输出两者的差异 它适用于深度为 2 或更小的字典 我应该怎么做才能处理更深度的字典以及嵌套的字典 我遇到的另一个问题是 当我通过 get json 函数传递 json 数组时 它会作为列表返回
  • 使用 DirectShow 过滤器进行编码

    我正在努力将原始图像编码为 Windows 上的 avi 文件 可能使用 directshow 过滤器 使用的编解码器类型将由用户选择 我已经使用 Windows 视频 VFW 做了类似的事情 这很漂亮 因为它提供了简单的 api 来压缩数
  • 使用子进程时如何在 Python 中复制 tee 行为?

    我正在寻找一个 Python 解决方案 它允许我将命令的输出保存在文件中 而不将其从控制台隐藏 仅供参考 我问的是tee 作为 Unix 命令行实用程序 而不是 Python intertools 模块中的同名函数 Details Pyth
  • 展示 SkScene 中的另一个视图控制器

    我正在尝试展示另一个viewController来自我的 SkScene 这是我的主要viewController tuViewController Code void openTweetSheet FacebookLikeViewDemo
  • 打开拨号盘以拨打用户想要的号码

    我想在用户单击通话按钮时打开拨号盘 然后用户输入电话号码并拨打它 我知道我们可以这样打电话 UIApplication sharedApplication openURL NSURL URLWithString telprompt 2135
  • 如何在 Markdown pandoc 中打破长头线?

    在这个降价代码中 This a very long line header which was written in markdown 我想将长行分成两行 但保持标题的样式 这是错误的意图 This a very long line hea
  • 如何在 Ruby 中使用 mechanize 填写登录表单?

    下面是我希望用机械化填写的表格 已经尝试过常用的模型 例如 使用 Ruby 和 Mechanize 填写远程登录表单之谜 但没有成功
  • 如何使用链接按钮打开新选项卡?

    我正在使用一个linkbutton在一个gridview控件 我想将数据打开到新选项卡中 我尝试设置target blank 但它不起作用 我尝试过这样做 这是我的源代码
  • WCF 用户名身份验证:我可以在自定义 ServiceAuthorizationManager 中获取用户名吗?

    我有一个使用自定义的 WCF 服务ServiceAuthorizationManager 自定义身份验证管理器已设置为处理 Windows 和表单身份验证 但是 如果我连接的客户端设置为UserNameauth 我似乎无法在任何地方找到用户
  • 在一个类中使用带有成员函数的通用 std::function 对象

    对于一个类 我想将一些指向同一类的成员函数的函数指针存储在一个类中map储存std function对象 但我一开始就失败了这段代码 include
  • Clojure 生产者 消费者

    我正在学习 clojure 并通过生产者消费者示例尝试其并发性和有效性 这样做后 不得不使用 ref 和 deref 以及观察和取消观察感觉非常尴尬 我尝试检查其他代码片段 但是除了使用 Java Condition await 和 sig
  • 单击表格,更新行,将鼠标悬停在行上,更新表格

    我是 D3 的新手 但到目前为止我很喜欢它 但我知道我的解决方案缺乏 优雅 我试图有 2 个控件 一个表格和一个显示表格单元格表示的数据的图表 如果单击表格上的单元格 则相关行应突出显示 如果将鼠标悬停在一行上 关联的表格单元格将改变颜色
  • 如何忽略或修复重复的类警告?

    我正在尝试使用Qulice代码质量控制工具 当我跑步时qulice check在我的项目中 我收到以下错误 WARNING Found duplicate and different classes in junit junit 4 8 2
  • 如何获取对象的实例名称

    我使用下面的代码编写代码来查询指定时间间隔内的Web方法 现在在 this Poll 函数中我必须做 this tmo setTimeout this strInstanceName Poll this iInterval 代替 this
  • 通过索引实现“constexpr for”

    for int i 0 i lt 5 i std get i tuple 这不会编译 因为i不是编译时间常数 在如何迭代 std tuple 的元素 和其他帖子我看到递归的答案 或使用std apply 但那些失去了索引控制 我也不想仅仅限
  • Netsuite Advanced PDF/HTML 代码 ifelse 语句

    我需要一些帮助 以正确的方式格式化此代码 以便在 Netsuite 中实现项目 td lt if item units null gt Units lt else gt tranline units td 我希望 PDF 表单显示测量单位
  • 迭代 rvest scrape 函数给出:“open.connection(x, "rb") 中出现错误:已达到超时”

    我正在刮这个网站使用 rvest 包 当我迭代函数太多次时 我收到 open connection x rb 中的错误 已达到超时 我搜索过类似的问题 但答案似乎进入了死胡同 我怀疑它是服务器端的 并且该网站对我可以访问该页面的次数有内置限
  • Qt jpeg 无法在我朋友的电脑上运行

    我正在完成一个 Qt 应用程序 但遇到了问题 就这个 我使用此代码将图像加载到 QGraphicsScene 中 QFile file fileName if file open QFile ReadOnly QByteArray data
  • 使用 JavaScript 获取边距顶部

    我需要得到margin top of an input使用 JavaScript 这是运行良好的 jQuery 代码 alert input css margin top 但我需要纯 JavaScript 我尝试了以下代码但没有成功 ale
  • WCF web.config 中的 readerQuotas 与请求限制

    我希望将 100 MB 的数据从客户端应用程序传输到 WCF 服务 我已经设置了读者配额在我的 web config 中 但我读了一篇他们建议的文章请求限制这在中进行了简要解释http www iis net configreference