读取 XML 数据时超出了最大字符串内容长度配额 (8192)

2023-12-11

我正在尝试将一个大字符串(24,000 到 50,000 个字符)传递给自托管 TCP WCF 服务。

我已将 maxStringContentLength(所有位置)提高到 22008192。

我在某处读到我需要将绑定配置更改为“LargeBuffer”或“LongFields”,但是当我这样做时:

<endpoint address="" binding="netTcpBinding" bindingConfiguration="LongFields"
  contract="ExStreamWCF.IService1">

or this:

<endpoint address="" binding="netTcpBinding" bindingConfiguration="LargeBuffer"
  contract="ExStreamWCF.IService1">

我的服务无法启动。我真的需要这个错误消失。有任何想法吗?

Thanks,

Jason

PS——服务器上tcp服务的配置文件:

<system.serviceModel>
<services>
  <service behaviorConfiguration="ExStreamWCF.Service1Behavior"
    name="ExStreamWCF.Service1">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
      contract="ExStreamWCF.IService1">
      <identity>
        <dns value="Devexstream-2.anchorgeneral.local" />
        <!--<dns value="vmwin2k3sta-tn2" />-->
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
      contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://Devexstream-2:8080/Service" />
        <!--<add baseAddress="net.tcp://vmwin2k3sta-tn2:8080/Service" />-->
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ExStreamWCF.Service1Behavior">
      <serviceMetadata httpGetEnabled="false" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

编辑:根据要求进行绑定

    <system.serviceModel>
    <bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IService1" closeTimeout="00:01:00"
 openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
 transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
 hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
 maxBufferSize="2565536" maxConnections="10" maxReceivedMessageSize="2565536">
 <readerQuotas maxDepth="22008192" maxStringContentLength="22008192" maxArrayLength="2516384"
  maxBytesPerRead="22008192" maxNameTableCharCount="22008192" />
 <reliableSession ordered="true" inactivityTimeout="00:10:00"
  enabled="false" />
 <security mode="Transport">
  <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
  <message clientCredentialType="Windows" />
 </security>
</binding>

</netTcpBinding>
</bindings>

客户端端点:

<client>
<endpoint address="net.tcp://devexstream-2:8080/Service" binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IService1" contract="TCPService.IService1"
         name="NetTcpBinding_IService1">
<identity>
 <servicePrincipalName value="TCPService\Devexstream-2" />
 <dns value="Devexstream-2.anchorgeneral.local" />
</identity>
</endpoint>

我已经编辑了该服务(如下),但现在该服务无法启动。新的应用程序配置:

<system.serviceModel>
<bindings>
  <netTcpBinding>
    <binding name="ExStreamWCFBinding" closeTimeout="00:00:05" openTimeout="00:00:05" receiveTimeout="00:00:05" sendTimeout="00:00:05" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparison="StrongWildCard" maxBufferPoolSize="524288" maxBufferSize="524288" maxConnections="10" maxReceivedMessageSize="5242880">
      <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    </binding>
  </netTcpBinding>
</bindings>
<services>
  <service behaviorConfiguration="ExStreamWCF.Service1Behavior"
    name="ExStreamWCF.Service1">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration="ExStreamWCFBinding"
      contract="ExStreamWCF.IService1">
      <identity>
        <dns value="Devexstream-2.anchorgeneral.local" />
        <!--<dns value="vmwin2k3sta-tn2" />-->
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
      contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://Devexstream-2:8080/Service" />
        <!--<add baseAddress="net.tcp://vmwin2k3sta-tn2:8080/Service" />-->
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ExStreamWCF.Service1Behavior">
      <serviceMetadata httpGetEnabled="false" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

bindingConfiguration 需要具有分配给 netTcpinding 元素的名称 - “LargeBuffer”或“LongFields”没有任何意义,除非配置文件中存在具有该名称的绑定元素。这就是为什么当你把它放进去时你的服务不会启动——我敢打赌,你很可能会收到某种配置错误消息。

要覆盖 maxStringContentLength 的默认 8192 设置,请执行以下操作:

  1. 在配置文件中创建一个具有所需 maxStringContentLength 大小的 Binding 元素,并在 name 属性中为其指定名称。
  2. 在端点元素中,将上面步骤 1 中的名称分配给属性 bindingConfiguration。

如果您没有为端点指定绑定配置,服务将使用默认值。

例如,以上面的配置文件为例。在标签下,添加以下绑定配置(请注意,您使用的具体值和可选属性将根据您的服务需求而有所不同):

<bindings>
  <netTcpBinding>
    <binding name="ExStreamWCFBinding" closeTimeout="00:00:05" openTimeout="00:00:05" receiveTimeout="00:00:05" sendTimeout="00:00:05" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparison="StrongWildCard" maxBufferPoolSize="524288" maxBufferSize="524288" maxConnections="10" maxReceivedMessageSize="5242880">
      <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    </binding>
  </netTcpBinding>
</bindings>

然后当您定义端点时:

<endpoint address="" binding="netTcpBinding" bindingConfiguration="ExStreamWCFBinding" contract="ExStreamWCF.IService1"> 

编辑添加

根据您的附加信息,在服务中的端点上为 BindingConfiguration 属性分配值“NetTcpBinding IService1”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取 XML 数据时超出了最大字符串内容长度配额 (8192) 的相关文章

  • Rust 编程竞赛中最快的惯用 I/O 例程?

    我的问题已部分得到解答 因此我根据从评论和其他实验中学到的知识对其进行了修改 总之 我想要一个用于编程竞赛的快速 I O 例程 其中使用单个文件解决问题 无需外部包 它应该从一个以空格分隔的标记序列中读取BufRead 标准输入或文件 标记
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • WCF服务通过IIS与第三方dll连接

    我正在使用 Windows 7 VS2010 SqlServer 2008 我的应用程序从第三方 dll 获取数据 它从必须在后台运行的另一个进程获取数据 并处理数据 然后通过 WCF 服务将其发送到前端 应用程序已完成并执行其应该执行的操
  • .join() 方法到底是做什么的?

    我对 Python 还很陌生 并且完全困惑 join 我读过的是连接字符串的首选方法 I tried strid repr 595 print array array c random sample string ascii letters
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符
  • WCF 仅跟踪失败的请求?

    我想将跟踪信息保存到 svclog 文件中 但仅限于失败的请求 这可能吗 如果是这样 具体如何 我有一个每分钟调用数百次的 WCF 服务 在极少数情况下 客户端会收到错误 500 该错误发生在 WCF 内运行的代码边界之外 通常是安全问题
  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • T-SQL:如何获取字符串的确切字符长度?

    我正在为预先没有数据类型信息的表生成 T SQL SELECT 语句 在这些语句中 我需要执行取决于表列的原始值的长度的字符串操作操作 一个示例 但不是唯一的示例 是在字符串中的特定位置插入一些文本 包括将其插入末尾的选项 SELECT C
  • WCF服务健康状况监控

    我刚刚实现了 WCF 服务 目前正在研究服务监控选项 我们的服务器团队目前仅托管 java 服务 希望我们的实例始终运行 因此它可以在该实例的生命周期内收集数据 他们表示将使用我们的 webmon 操作之一来获取统计信息 但我们正在使用每次
  • Swift 3 错误:[_SwiftValue pointSize] 无法识别的选择器发送到实例

    我刚刚将我们的项目迁移到 swift 3 发现由于一个问题导致大量崩溃 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 SwiftValue pointSize 发送到实例的无法识别的选择器 该
  • 如何保证单向方法的可靠性?

    The 关于单向调用 回调和事件您需要了解的信息 http msdn microsoft com en us magazine cc163537 aspx文章讲述 客户端不关心调用结果的事实并不意味着客户端根本不关心调用是否发生 一般来说
  • 改变字符串颜色

    好的 这是我上一个问题的延续 但我有代码 private void btnTrans Click object sender EventArgs e var abrvStr inputBx Text foreach var kvp in d
  • 如何为新的 Silverlight 应用程序在 WCF、REST、POX 和 RIA 服务之间进行选择

    There a lotSilverlight 应用程序连接回其服务器的不同方式 包括 WCF Windows 通信基础 http msdn microsoft com en us netframework aa663324 aspx RES
  • 如何从 JavaScript 调用 ASSX?

    我想调用一个 ASHX 文件并从 JavaScript 传递一些查询字符串变量 并将返回字符串获取到 JavaScript 中的字符串中 我该怎么做 ASHX 文件已被编码为response write 一个基于查询字符串的字符串 像这样的
  • 使用 Python 在 Django 中将 Unix 时间戳转换为人类格式

    我想将字符串中的 unix 时间戳 例如 1277722499 82 转换为更人性化的格式 hh mm ss 或类似格式 有没有一种简单的方法可以在 python 中为 django 应用程序执行此操作 这是在模板之外 在我想要执行此操作的
  • 如何将两个long转换为字节数组=如何将UUID转换为字节数组?

    我正在使用 JavaScriptUUID并且需要将 UUID 转换为字节数组 奇怪的是 UUID 类不提供 toBytes method 我已经了解了这两种方法 UUID getMostSignificantBits and UUID ge
  • rabbitmq 的 REST API

    有没有办法从 ajax 向 RabbitMQ 发送数据 我的应用程序由数千个 Web 客户端 用 js 编写 和 WCF REST 服务组成 现在我试图弄清楚如何为我的应用程序创建可扩展点 这个想法是有一个rabbitmq实例 它从放置在一
  • 如何增加 dot net core 2.1 项目中 WCF 服务的超时值

    我发布此内容是因为我无法在 Stack Overflow 上找到任何位置通过连接服务添加服务引用来解决利用 WCF 的 Net Core 项目的此问题 我的问题是 由于长时间运行的操作请求 我面临客户端超时 那么 由于 Net Core 不

随机推荐

  • 如何在数码显微照片脚本中使用单个对话框打开多个图像?

    我正在用 DigialMicrograph 脚本编写 我想要一个脚本在一个对话框中打开多个图像 即一个多选图像对话框 类似于您进入任何 Windows 打开对话框 选择多个图像并按 确定 我认为这是可能的 但我还没有找到办法 我想在我的脚本
  • 获取 NoSuchFieldError 实例 org/apache/http/message/BasicHeaderValueParser

    我正在开发 Android 上的应用程序 我正在使用httpcore 4 3 3 当我尝试使用时我得到这个ContentType parse string java lang NoSuchFieldError No static field
  • 所有的无限循环都是不好的吗?

    出于好奇 有all无限循环不好 如果运行无限循环会产生哪些不良影响和后果 另外 如果它们并不全是坏事 您能否举一些例子 说明它们何时能发挥有意义的作用 他们需要有什么东西来关闭实例吗 例如 我们总是在 Java 中使用 StreamRead
  • 有没有办法从 MassTransit 获取原始消息?

    我有一个具有通用参数的消费者IEvent 该类型是所有消息的基接口 以及子接口IEvent还有一些其他属性 我希望能够访问具有嵌套类型的所有属性的原始消息 而不仅仅是IEvent范围 这些属性可以通过 RMQ 管理仪表板查看 我认为应该有一
  • Powershell Invoke-Webrequest 在没有表单的情况下进行页面登录

    I saw 这个帖子没有解决方案 但我的问题是类似的 我正在尝试在我自己的登录页面上自动查找我正在使用的服务的一些信息 当我运行以下命令时 它没有给我任何信息 Forms Webpage Invoke WebRequest Uri http
  • Python pandas:读取带有多个表重复前导码的csv

    有没有一种Python式的方法来找出CSV文件中的哪些行包含标题和值以及哪些行包含垃圾 然后将标题 值行放入数据框中 我对 python 比较陌生 一直使用它来读取从科学仪器的数据日志导出的多个 CSV 到目前为止 在处理其他任务的 CSV
  • Modbus 错误:[输入/输出] 未收到来自远程设备的响应

    我尝试从 Mac 笔记本电脑连接到 Modbus 设备 MR SI4 使用串行连接 使用 USB RS485 转换器 安装 到 dev cu SLAB USBtoUART 这是我的代码 import logging logging basi
  • 如何通过bundle发送对象

    我需要传递对通过包进行大部分处理的类的引用 问题是它与意图或上下文无关 并且具有大量非原始对象 如何将类打包成可打包 可序列化并将其传递给startActivityForResult 您还可以使用 Gson 将对象转换为 JSONObjec
  • querydsl生成的q源代码未正确导入

    我正在尝试将 querydsl 添加到现有系统 但在获取生成的 Q 源进行编译时遇到问题 我读过几个类似的问题和解释 https spring io blog 2015 09 04 what s new in spring data rel
  • Lucene 搜索匹配短语中的任何单词

    我想搜索包含很多单词的字符串 并检索与其中任何单词匹配的文档 我的索引方法如下 Document document new Document document add new TextField termos text Field Stor
  • 使用 GridF 从 mongoDB 读取和显示图像

    我已经能够使用 GridFs 成功将图像上传到 mongoDB 以下是我的数据库中的图像 fs 文件 fs 块 下面是我用来上传图片的代码 var Grid require gridfs stream var mongoose requir
  • Ionic 4. NavParams 的替代方案

    我正在使用 ionic 4 它不接受使用 navparams 接收数据 这是我的发件人页面方法 private route Router gotoFinalView intent this route navigateByUrl inten
  • 3 次划分的中位数

    我找到了以下代码 用于使用第一个 最后一个和中间元素的中值查找快速排序的枢轴 int middle low high 2 if a middle compareTo a low lt 0 swapReferences a low middl
  • 内核启动和内核执行之间的时间

    我正在尝试使用 VS 2010 的 Parallel Nsight 2 1 版本来优化我的 CUDA 程序 我的程序在带有 GTX 480 板的 Windows 7 32 位 机器上运行 我已经安装了 CUDA 4 1 32 位工具包和 3
  • 为什么 self.kill() 不从组中删除对象?

    我不久前问过这个问题 但答案并不完全有帮助 而且我不相信我发布了最小的可重现示例 一段时间 self lifetime 过去后 我试图杀死我的子弹 self kill 命令被执行 但它并没有从相机组中删除子弹 这就是我用来绘制所有子弹的 相
  • 从其他类对 WinForm 控件进行线程安全更新

    有人可以帮我解决以下问题吗 有两个类 MainForm 和 LWriter 下面是 LWriter 中的一个方法 除了写入文件之外 还向 RichTextBox 控件发送一些更新 通过 mainForm UpdateLog text 一切工
  • JavaScript 函数类似于 Python range()

    JavaScript 中是否有类似于 Python 的函数range 我认为应该有比每次都写以下几行更好的方法 array new Array for i 0 i lt specified len i array i i 对于 ES6 中非
  • 从提升的会话启动非提升的提示

    我有一些工具如果从提升的会话运行则无法工作 我正在运行提升的会话 在管理安装的上下文中 因此这是强制性的 因此这是不可更改的 除了创建计划任务并执行它之外 还有什么更快或更友好的方法吗 编辑 这是需要未提升运行的命令 vboxmanage
  • 在输入时将动画添加到边框底部

    我希望输入的边框底部颜色在单击时随动画变化 与黄线一类似 我希望它出现在所有输入框和选择上 input container display inline block text align center awsome input paddin
  • 读取 XML 数据时超出了最大字符串内容长度配额 (8192)

    我正在尝试将一个大字符串 24 000 到 50 000 个字符 传递给自托管 TCP WCF 服务 我已将 maxStringContentLength 所有位置 提高到 22008192 我在某处读到我需要将绑定配置更改为 LargeB