一部のWebメソッドを呼び出すときに次の例外が発生し始めたWCFサービス(SOAPベース)があります。
System.Xml.XmlException:XMLデータの読み取り中に、ネームテーブルの最大文字数クォータ(16384)を超えました。nametableは、XML処理中に検出された文字列を格納するために使用されるデータ構造です。要素名、属性名、および属性値が繰り返されない長いXMLドキュメントは、このクォータをトリガーする可能性があります。このクォータは、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxNameTableCharCountプロパティを変更することで増やすことができます。1行目、4221の位置。System.Xml.XmlExceptionHelper.ThrowXmlExceptionで
サービスとクライアントの構成でクォータを増やすことでこれをすでに修正しましたが、問題が発生する前とクォータの増加を適用した後のメッセージ応答に違いは見られません。
私の質問は次のとおりです。
名前テーブルは実際にどのように機能しますか?そして、最大値を持つ名前テーブルを持つことの意味は何ですか?
サービスとテストケースを変更せずにこの例外が発生し始めた理由を説明できる可能性のあるものはありますか?いくつかのメソッドを追加しましたが、それらのWebメソッドが呼び出されていなかったことを考えると、それが適切な説明であるかどうかはわかりません。
名前テーブルのデバッグに関する推奨事項はありますか?オーバーフローが発生する原因を確認してください。
ありがとう