我有一个mex绑定,超过了16k的读者配额。我知道如何增加basicHttpBindings的大小,但是mexHttpBinding不允许缓冲区大小的相同增加等等。
我不能就这样把服务分解成更小的服务。因为我们的网站必须处理这些请求,即使我们的生产服务器处理业务逻辑和数据处理,我们不得不编写一个定制的路由服务,因为只有IIS6。
有人能提出一个解决方案来增加mex文件的大小吗?
以下是实际错误:
错误:如果这是您可以访问的Windows (R)通信基础服务,则无法从http://localhost:8021/mex获取元数据,请检查是否已启用指定地址的元数据发布。有关启用元数据发布的帮助,请参考http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange错误URI:http://localhost:8021/mex元数据包含无法解析的引用的MSDN文档:“http://localhost:8021/mex”。XML文档(1,148711)中有一个错误。读取XML数据时已超过最大可命名字符计数配额(16384)。nametable是一种数据结构,用于存储XML处理过程中遇到的字符串,使用非重复的元素名称、属性名和属性值可能触发此配额。可以通过更改在创建XML读取器时使用的MaxNameTableCharCount对象上的XmlDictionaryReaderQuotas属性来增加此配额。第1行,位置148711.HTTPGET错误URI:http://localhost:8021/mex下载'http://localhost:8021/mex‘时出错。请求失败,HTTP状态400:错误请求。
发布于 2010-01-19 09:20:52
为mex端点尝试以下自定义绑定:
<customBinding>
<binding name="customMex">
<textMessageEncoding>
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</textMessageEncoding>
<httpTransport transferMode="Buffered"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"/>
</binding>
如果喜欢,可以修改大小,并使用以下端点引用绑定:
<endpoint address="mex"
binding="customBinding"
contract="IMetadataExchange"
name=""
bindingConfiguration="customMex"
listenUriMode="Explicit" />Svcutil覆盖
如果使用svcutil,它有自己的限制,可以通过创建配置文件来重写,如本有博客的极客文章所述
https://stackoverflow.com/questions/2092307
复制相似问题