NET 4 クライアント アプリケーションから接続している NET 4 WCF サービス (リモート サーバー内) があります。サービスはコールバックを実装し、クライアント アプリケーションはメソッドを正常に呼び出してコールバックを受け取ることができます。完璧。
ここで、WCF サービスがホストされている (スタンドアロン) リモート サーバーに実行可能ファイル (および構成) をコピーすると、アプリケーションはメソッドを正常に実行できますが、コールバックを受信することはありません!
また、開発用 PC の仮想マシンからアプリケーションを実行してみました。サービスに接続してメソッドを実行することはできましたが、もう一度コールバックを受け取ることはありません!
私は究極のテストを試みました。同時に 3 つの場所すべてでアプリケーションを実行しました。3 つすべてが正常に初期化され、サービスのメソッドが正常に呼び出されますが、イベントがトリガーされるとすぐに、私の開発 PC だけがコールバックを受け取ります! 他の二人は沈黙する。3 つのアプリはすべて 1 つの共有フォルダーから開始されたため、同じコードを効果的に実行し、同じ構成に依存しています。
コールバックを受信する唯一の開発用 PC は何ですか? 手がかりは大歓迎です。これが誰かに鐘を鳴らしてくれることを願っています。
[アップデート]
トレースを有効にした後、次の例外が見つかりました。一部の内部バッファ制限に達したようです。それを修正する方法がわかりません。これらは app.config: からの現在の制限の一部ですmaxBufferPoolSize="16384000" maxReceivedMessageSize="16384000"
。
メッセージを逆シリアル化しようとしているときにフォーマッタが例外をスローしました: パラメータhttp://tempuri.org/:resultを逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「MatchResult 型のオブジェクトのデシリアライズ中にエラーが発生しました。XML データの読み取り中に、最大配列長のクォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。詳細については、InnerException を参照してください。