私たちの生産には奇妙な状況があります。私たちは2つのエンドポイントが公開されたWCFサービスを持っています(HTTPとhttps)。 HTTPエンドポイントは、WshttpbindingをSecurity = MessageとAuthentication with Windowsとして使用します。 Httpsエンドポイントは、Security = TransportとAuthentication with CertificatesのWshttpbindingを使用します。このサービスは3人のクライアントによって消費されます。そのうち2つは通信にhttpsエンドポイントを使用し、1つのクライアント(Windowsサービス)はHTTPエンドポイントを使用します。
問題:
WCFサービスは、継続的に言及した3つのクライアントのいずれかによって送信されないメッセージを処理しています。私は3人のクライアントすべてを止めようとしていましたが、まだそのサービスを流れるデータがありました。私はこれらのメッセージがサービスによってどこで処理されているかを把握するのに苦労しています。 WCFサービスが以前に処理されなかったメッセージをキャッシュしている可能性はありますか?私は何が起こっているのか分からない。
以下は、私が試したものです:
a)のアプリケーションプールを数回再起動し、それは問題を解決しませんでした。
b)3つのクライアントすべてを異なる組み合わせで停止して再起動しただけで、これらのメッセージの原因となる可能性があるフィルタを除外します。 3つのクライアントすべてがオフになっているが、サービス処理メッセージが表示されている状況がありました。
c)プロダクションサーバ上にあるため、プロダクションサーバを再起動したりIISを再起動したりしなかったため、私はそうすることを念願しています。しかし、それが問題を解決し、再起動を行うのに役立つ技術的な理由がある場合、私はそれを打つことができます。
私はすべてのアイデアを使い果たしました。入力を試すことができればうれしいです。
使用Wiresharkのhttps://www.wireshark.org/download例えば、ログファイルにログができどのホストがウェブサービスを実行しているホストのポート80にパケットを送信しているかを識別するために.html ...私は、リクエストを送信し続ける3つのクライアントのうちの1つで動作していることを確かめています.... –
確かに、私は明日それを試してみます。他の入力がある場合はお知らせください... – marak
これを試して、どのクライアントがWCFサービスのコードで直接リクエストを送信したかを特定することもできます。http://stackoverflow.com/questions/11048532/get-client- ip-address-in-a-wcf-service-hosting-using-https-443-bindingsを使用して、ログファイルにログします(例: –