tl;dr:
WCF でこのエラーが発生した場合の主な対処方法は、エラーが発生したときに Intelli-Sense タイプのデバッグ ウィンドウで虫眼鏡アイコン / XML として表示を試すことです。私の場合と同じように、エラーが公開される可能性があります。
最初は、ワイヤーに当たる前にクラス配列のシリアライゼーションが台無しになっていると思いました。配列は多数のオブジェクトを返し、一部はネストされているため、非常に可能性がありました。Xml.Serializer を使用してこの理論をテストし、返されたクラス配列を XML ドキュメントにシリアライズおよびデシリアライズしました。これは正常に機能し、クライアント側でエラーはスローされませんでした。ルールのシリアル化アウト。
次に、web.Config ファイルの設定の 1 つが正しく設定されていない可能性があると考えました。いいえ、すべてが正しいバインディング、動作、制限、タイムアウトで最大限に活用されました...すべてが良さそうに見えました。だから、おそらく複数の呼び出しを行っているので、同時実行またはスレッドの問題だと思いました。これをテストするために、シリアル化されたクラス オブジェクトの配列ではなく、リクエストごとに 1 セットの結果のみを返しました。またエラー出た!したがって、並行性やスレッドの問題ではありませんでした。
ただし、単一のクラス オブジェクトを返すことで解決に至りました。毎回 1 つのオブジェクトが失敗し続けることに気付きました... しかし、この 1 つのクラス オブジェクトは、(別のクラスの) 複数の文字列、整数、およびリストのコンテナーです。通常、返されるメイン クラスには 1000 を超えるサブオブジェクトはありません。しかし、このオブジェクトで返される何かに問題があることが明らかになりました。何を探すべきかわからないまま、すべての可能性(通常は 500 から 1000 の間)を調べることは、干し草の山の中の針のような問題です。
幸いなことに、「基になる接続が閉じられました: 接続が予期せず閉じられました」というエラーが表示されました。エラーがまだ表示されている間に、WCF サービスに送信されている List(Of Class) の上にマウスを置きました。これにより、クラス内の各サブオブジェクトを掘り下げながら、リスト (クラスの) 内の各クラスをふるいにかけることができる、Intelli-Sense タイプのデバッグ ウィンドウが表示されました。リスト(クラスの)で1つのクラスしか返さなかったので、物事を絞り込むのに役立ち、問題の原因となっている整数フィールドではないと想定しました-返される文字列変数に直行しました。それらをコピーしてメモ帳に貼り付けましたが、いくつかのサブオブジェクトが疑念を引き起こしましたが、すぐに気付いた問題は実際には見られませんでした. その後、好奇心によって、この intelli-sense タイプのデバッグ ウィンドウ内の各戻り文字列の横にドロップダウン矢印が付いた小さな虫眼鏡があることに気付きました。疑いのあるそれぞれの虫眼鏡をクリックすると、文字列を XML 形式で表示するオプションがあることに気付きました。私はこれをクリックして、長い間待っていましたが、意味のある文字列の 1 つでエラーが発生しました! エラーは、エスケープされていない & 記号が一部のテキストに混入していることを示していました。これがダメだと気づかなかったので、次の 5 文字 &、<、>、"、' をエスケープしました。再試行したところ、新しいエラーが発生しました。"XML ドキュメントで許可される最上位要素は 1 つだけです。リソースの処理中にエラーが発生しました" !@!
少し調査した後、このオブジェクトにはまだファンキーなものがあるように見えました。そこで、問題となる可能性のある文字列を「<![CDATA["
& "]]>
」で囲んでみました。同じ「XML ドキュメントで許可される最上位要素は 1 つだけです。リソースの処理中にエラーが発生しました」というエラーが発生しました。{color:#000000;} の形式で CSS が抜け落ちていたことが判明しました。何らかの理由で、ブラケットが問題を引き起こしていました。その理由は、CSS の形式が JSON によく似ていて、クライアントがそれをそのように見ていたからだと推測しています。ブラケット/CSS を削除した後、「XML ドキュメントでは最上位の要素は 1 つだけ許可されています。リソースの処理中にエラーが発生しました」というメッセージが表示されなくなり、オブジェクトが正常に転送されました。
長い説明的な回答で申し訳ありませんが、有用なトレース情報をスローしなかったこれらの問題を抱えている人は他にいませんでした。うまくいけば、これは他の誰かに役立ちます!(私はここに投稿し、自分の質問に答えました。これは単純な解決策でしたが、解決するのが非常にイライラしたためです。)