0

nametable の最大文字数の割り当てに問題があります。ここでいくつかの回答をたどって、しばらく問題を解決しましたが、今は同じ問題が発生しています。

私のサーバー側の設定は次のとおりです。

<system.serviceModel>
      <bindings>
        <netTcpBinding>
          <binding name="GenericBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
                   maxReceivedMessageSize="2147483647">

            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                          maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            <security mode="None" />
          </binding>
        </netTcpBinding>
      </bindings>
    <behaviors>
            <serviceBehaviors>
                    <behavior>
                            <serviceMetadata httpGetEnabled="false" />
                            <serviceDebug includeExceptionDetailInFaults="true" />
                            <dataContractSerializer maxItemsInObjectGraph="1000000" />
                    </behavior>
            </serviceBehaviors>
    </behaviors>
    <services>
            <service name="REMWCF.RemWCFSvc">
              <endpoint address="" binding="netTcpBinding" contract="REMWCF.IRemWCFSvc" bindingConfiguration="GenericBinding" />
              <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
              <host>
                <baseAddresses>
                  <add baseAddress="net.tcp://localhost:9081/RemWCFSvc" />
                </baseAddresses>
              </host>
            </service>
    </services>
  </system.serviceModel>

devenv 構成にも同じ tcp バインディングがあります。

サポートされている契約の制限に達しましたか? そのクォータをオフにする方法はありますか?

編集

エラーメッセージ:

エラー: net.tcp://localhost:9081/RemWCFSvc/mex からメタデータを取得できません これがアクセス権を持つ Windows (R) Communication Foundation サービスである場合は、指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。メタデータの公開を有効にする方法については、MSDN のドキュメント ( http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata ) を参照してください。Exchange エラー URI: net.tcp://localhost:9081/RemWCFSvc/mex メタデータに解決できない参照が含まれています: 'net.tcp://localhost:9081/RemWCFSvc/mex'。XML ドキュメントにエラーがあります。XML データの読み取り中に、nametable の最大文字数クォータ (16384) を超えました。nametable は、XML 処理中に検出された文字列を格納するために使用されるデータ構造です。要素名、属性名、および属性値が繰り返されない長い XML ドキュメントは、このクォータをトリガーする可能性があります。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxNameTableCharCount プロパティを変更することで増やすことができます。

WCF (Windows サービス アプリでホストされている) を実行しようとすると、そのエラーが発生します。

4

1 に答える 1

0

これが正しいWeb構成です。metadataenabled を true に設定する必要があり、動作名も定義していません。この構成で試してみてください。

<system.serviceModel>
      <bindings>
        <netTcpBinding>
          <binding name="GenericBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
                   maxReceivedMessageSize="2147483647">

            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                          maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            <security mode="None" />
          </binding>
        </netTcpBinding>
      </bindings>
  <behaviors>
    <serviceBehaviors>
      <behavior name="SilverlightWCFLargeDataApplication">
        <serviceMetadata httpGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="false"/>
        <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
      </behavior>

    </serviceBehaviors>
    <endpointBehaviors>
      <behavior name="SilverlightWCFLargeDataApplication">
        <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
      </behavior>
    </endpointBehaviors>
  </behaviors>
    <services>
            <service name="REMWCF.RemWCFSvc" behaviorConfiguration="SilverlightWCFLargeDataApplication">
              <endpoint address="" behaviorConfiguration="SilverlightWCFLargeDataApplication" binding="netTcpBinding" contract="REMWCF.IRemWCFSvc" bindingConfiguration="GenericBinding" />
                <host>
                <baseAddresses>
                  <add baseAddress="net.tcp://localhost:9081/RemWCFSvc" />
                </baseAddresses>
              </host>
            </service>
    </services>
  </system.serviceModel>
于 2012-11-10T04:57:14.557 に答える