代码之家  ›  专栏  ›  技术社区  ›  Johannes

WCF mex太大

  •  2
  • Johannes  · 技术社区  · 15 年前

    我不能把服务分解成更小的服务。因为我们的网站必须处理请求,即使我们的生产服务器处理业务逻辑和数据处理,我们必须编写一个定制路由服务,因为只有IIS6。

    错误:无法从中获取元数据 http://localhost:8021/mex 如果这是您可以访问的Windows(R)通信基础服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于的MSDN文档 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange错误URI: http://localhost:8021/mex 元数据包含无法解析的引用:' '. XML文档(1148711)中存在错误。读取XML表时已超过最大字符数(164个)。nametable是一种数据结构,用于存储XML处理过程中遇到的字符串—具有非重复元素名称、属性名称和属性值的长XML文档可能会触发此配额。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象上的MaxNameTableCharCount属性来增加此配额。第1行,位置148711.HTTP获取错误URI: http://localhost:8021/mex 下载“”时出错 http://localhost:8021/mex

    1 回复  |  直到 14 年前
        1
  •  1
  •   Tanner    15 年前

    <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,那么它有自己指定的限制,可以通过创建配置文件来覆盖,如本文所述 Geeks With Blogs Article

    推荐文章