クライアントサーバーアプリケーションがあります。私のサーバーは PHP、Mysql、および Apache であり、クライアントは C# Windows フォームを使用して開発されています。クライアント サーバー通信用の SOAP WSDL Web サービスがあります。最近、クライアントがリクエストを送信すると、非常に長い時間 (3/4 分から数時間など) の後に応答が返され、応答がない場合があるという問題が見つかりました。クライアント(httpwebrequest timeout、readwritetimeout)とサーバー(timeout、keepalivetimeout)側のすべてのタイムアウト値を確認しました。最大値は5分です(httpwebrequest readwritetimeoutの場合)。では、何が問題になるのか誰にもわかりますか?応答を得るのに何時間もかかる、または応答がないのはなぜですか?
1 に答える
私の経験では、このような問題は、Web サービス接続がファイアウォールによってブロックされているか、邪魔なプロキシによって発生します。これが問題ではないことを確認してください。
最初に、オプションを絞り込んで問題の特定を開始する必要があります。サーバー上の Web サービスをローカルで呼び出してみましたか。同じ問題が発生するかどうかを確認してください。そうでない場合は、接続の問題である可能性が高いです。
クライアントに問題があることも除外するには、代わりにhttp://www.soapui.org/などを使用してサーバー Web サービスを呼び出してみてください。
どこからサーバーを呼び出していますか? 呼び出し元のデバイスが IP ブロックされていないこと、および Web サービスが実行されている場所からデータベースにアクセスできることを確認しています。
サーバー API が使用するように定義された MySQL ユーザーは、サーバーの IP からアクセスできますか。MySQL ユーザーも IP によってブロックされることがよくあります。
すべてローカルで実行している場合、IIS Express の設定/仮想フォルダーがごちゃごちゃになっておらず、URL が正しく解決されていないことを確認してください。これを除外するには、仮想フォルダーをもう一度作成してみてください。ローカルで実行している場合でも、MySQL ユーザーがローカル IP からアクセスできることを確認してください。
あなたのような問題が発生したときに、私が通常チェックすることがいくつかあります。