首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF mex太大

WCF mex太大
EN

Stack Overflow用户
提问于 2010-01-19 09:08:30
回答 1查看 1.3K关注 0票数 2

我有一个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:错误请求。

EN

回答 1

Stack Overflow用户

发布于 2010-01-19 09:20:52

为mex端点尝试以下自定义绑定:

代码语言:javascript
复制
<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>

如果喜欢,可以修改大小,并使用以下端点引用绑定:

代码语言:javascript
复制
    <endpoint address="mex"
    binding="customBinding" 
    contract="IMetadataExchange" 
    name=""
    bindingConfiguration="customMex" 
    listenUriMode="Explicit" />

Svcutil覆盖

如果使用svcutil,它有自己的限制,可以通过创建配置文件来重写,如本有博客的极客文章所述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2092307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档