问题标签 [readerquotas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1470 浏览

wcf - 为什么 WCF 类绑定没有成员 ReaderQuotas?

我想知道为什么 WCF 中的类Binding没有属性ReaderQuotas,而它的子类BasicHttpBindingWSHttpBinding有。

这个事实使编码有点困难。对我来说,我使用下面的代码从 MEX 端点 URI 中提取绑定信息。但是,它刚刚获得了绑定。如果我想更改绑定的ReaderQuotas,我必须将其向下转换为Binding的子类,但我无法在运行时告诉确切的绑定。

有人知道为什么 WCF 是这样设计的吗?

有没有办法解决这个限制?

0 投票
3 回答
23928 浏览

c# - 以编程方式修改端点 ReaderQuotas

我有一个服务的动态客户端。如何更改其端点绑定的 ReaderQuotas 属性?

我试过这样,但它不起作用......

即使在这样做之后,ReaderQuotas 值仍然是默认值。

我也这样尝试过,但仍然无法正常工作:

我需要这个,所以我可以向服务发送超过 8kb 的数据。

0 投票
2 回答
1881 浏览

wcf - WCF - 在 REST 服务上增加 ReaderQuoatas

我有一个接受 JSON 字符串的 WCF REST 服务

其中一个参数是一大串数字

这会导致以下错误 - 通过跟踪和使用 SVC 跟踪查看器可以看到

反序列化 CarConfiguration 类型的对象时出错。读取 XML 数据时已超出最大字符串内容长度配额 (8192)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性来增加此配额。

现在我已经阅读了各种建议如何纠正这个问题的文章

他们都建议增加服务器和客户端上的各种配置设置

例如 WebService 调用中的错误序列化字符串

http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx

http://social.msdn.microsoft.com/Forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1

所以我的配置文件看起来像这样

我的问题是我可以在服务器上更改它,但是客户端上没有 WCF 配置设置作为它的 REST 服务,我只是使用该 WebClient对象发出一个 http 请求

有任何想法吗?

0 投票
2 回答
40321 浏览

wcf - WCF 服务已超出最大数组长度配额 (16384)

我有一个 wsf 服务和一个客户端应用程序。在尝试与客户端和服务进行通信时,我收到以下消息:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:blob时出错。InnerException 消息是“反序列化 FileBlob 类型的对象时出错。读取 XML 数据时超出了最大数组长度配额 (16384)。可以通过更改创建 XML 读取器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性来增加此配额。第 1 行,位置 25931。'。有关更多详细信息,请参阅 InnerException 。

我有 customBinding 元素,它不允许我插入“readerQuotas”部分。在客户端和服务配置中,我都有以下绑定元素:

在此先感谢您的帮助:)

0 投票
1 回答
1801 浏览

wcf - 如何增加 WCF 服务的读者配额?

我不希望任何人能够帮助解决这个问题,但让我们试一试。

我有一个 WinForms 应用程序,它使用 WCF 服务将一个相当大的 JSON 文档序列化为字符串。我已将客户对字符串的 Reader Quota 更改为 8192000(任意但适用于大多数情况),并将服务置于自定义绑定上,显式 readerquota 为 8192000

通过肉眼检查记事本中的服务引用,.svcinfo 文件中的配额设置为 8192,尽管这可能是一个红鲱鱼。

我已经走到了尽头,我已经遵循了我在谷歌上可以找到的每一条建议:

仅举两个名字,以及我可以在这里找到的所有建议答案,即

我看着这个:

http://wildermuth.com/2009/09/10/Using_Large_Message_Requests_in_Silverlight_with_WCF

这是对上述其中一项或我看过的许多其他事情之一的回应,这些事情我没有从我的“最近关闭的标签”列表中检索到。

基本上我想不出任何其他办法来增加这个限制,但它仍然坚持首先遇到长度超过 64k 的字符串,限制根本没有改变。

那么任何人都可以给我一个非常基本的逐步更改 WinForms 应用程序序列化的设置,然后将 JSON 数据反序列化为事务两端的字符串吗?许多其他建议都是关于 Silverlight 或其他一些场景的,无论出于何种原因,它都无法影响这种情况。

0 投票
2 回答
8622 浏览

wcf - WCF 中的最大数组长度配额异常

我正在编写一个 WCF 服务来上传文件,但是当字节数组有超过 16384 个元素时它会引发异常。

这是异常详细信息:

格式化程序在尝试反序列化消息时引发异常:反序列化操作“CreateDocument”的请求消息正文时出错。读取 XML 数据时已超出最大数组长度配额 (16384)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性来增加此配额。第 1 行,位置 22862。

客户端和服务器的配置都将最大数组长度配额设置为 2147483647。

客户端配置:

服务器配置:

0 投票
1 回答
668 浏览

c# - SharePoint 2010 WCF 服务 MaxItemsInObjectGraph 问题

我在将自定义 WCF 服务部署到 SharePoint 2010 时遇到问题。尝试将某些数据导入客户端时收到以下错误:

我尝试使用http://shaunedonohue.blogspot.com/2011/03/reader-quotas-for-wcf-services-in_4706.html上概述的机制进行一些更改,但我仍然收到此错误 -这些配额设置似乎与 MaxItemsInObjectGraph 设置无关。在服务的 ServiceBehaviour 属性中更改此设置似乎也不起作用。

有没有人遇到过这个问题?

0 投票
2 回答
11611 浏览

wcf - The maximum string content length quota (8192)

Error in deserializing body of reply message for operation 'CreateTransactionEntity'. The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.

Hey, I keep getting this error even though I have a larger-than-life readerQuota node on my web.config file...

After browsing the internet on the subject, I can't seem to come up with a decent answer. If you have any advice I would really appreciate it.

0 投票
1 回答
2490 浏览

asp.net - ASP.NET 应用程序中 readerQuotas 的问题

我有一个 ASP.NET 4.0 应用程序。

使用.svc链接源(服务实现)的文件托管 Web 服务。Web 服务.svc文件位于WebServs应用程序根目录中的一个目录中:MyApp/WebServs/mysvc.svc.

使用Web.config(在根目录中)设置 Web 服务。

好的!

当我调用 Web 服务时,我使用例程创建通道,以便封装这个常用逻辑:

该例程由客户端调用。而Web.config用于配置服务服务器端。

当我尝试使用大消息(小消息没问题)执行我的服务时,我得到:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数 http://((Namespace)):((Operation )) 时出错。InnerException 消息是“反序列化类型为 ((Type))、App_Code.s5qoir2n、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null] 的对象时出错。读取 XML 数据时已超出最大字符串内容长度配额 (8192)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性来增加此配额。第 31 行,位置 1309.'。有关更多详细信息,请参阅 InnerException。

不明白。服务和客户端都有共同的设置,这会读取默认值??????此外,我按照 StackOverflow 中的说明执行了许多其他用户的操作。

请帮我。谢谢

0 投票
1 回答
3843 浏览

wcf - WCF 中的自定义消息编码器,支持 ReaderQuotas

在这里找到答案(最后一篇文章):http ://social.msdn.microsoft.com/Forums/eu/wcf/thread/f5c0ea22-1d45-484e-b2c0-e3bc9de20915

我在实现我的自定义 ( TextOrMtomEncoder ) 时遇到了最后一个问题,即 ReaderQuotas 的实现。

我在网上搜索了很多,但我无法弄清楚最后一块拼图。

我有一个类,其中包含我对“BindingElementExtensionElement”和“MessageEncodingBindingElement”的实现。

MessageEncodingBindingElement 实现包含以下内容的覆盖:

我从默认的 .NET MessageEncoding 实现中“借用”了它,例如 TextMessageEncoding

这必须是正确的实现,因为 MSDN 是这么说的。

从 web.config 加载配置很好,我可以看到我的两个类中的 ReaderQuotas 属性设置正确,但看起来 .NET 没有从我的 MessageEncodingBindingElement 实现中读取 ReaderQuotas 配置。

我的猜测是 .NET 使用 GetProperty 方法来加载配置,因为 MessageVersion 是通过此方法请求的。但问题是,T 永远不会等于 XmlDictionaryReaderQuotas,因此 ReaderQuotas 永远不会开始请求。

我的问题的根源是奇怪的顺便说一句,我正在使用 IIS7.5 的 Windows 7 x64 机器上开发。在我的机器上发布“大”文件(如 100 KB)。但是当我将服务部署到 Windows Server 2008 R2(尝试了 2 个不同的服务器)时,我收到以下错误:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数 http://socialproxy.infocaster.net:argument时出错。InnerException 消息是“反序列化 System.Object 类型的对象时出错。读取 XML 数据时已超出最大数组长度配额 (16384)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性来增加此配额。第 1 行,位置 1584.'。有关更多详细信息,请参阅 InnerException。

就像我说的,它可以在我的机器上运行:-/

谁能告诉我如何解决这个问题?

提前谢谢了!

WCF 服务配置: