20

一連の Web サービスが稼働しているかどうかを監視する C# アプリケーションを作成する必要があります。ユーザーはドロップダウンからサービス名を選択します。プログラムは、対応するサービス URL でテストし、サービスが実行されているかどうかを表示する必要があります。それを行う最良の方法は何ですか?私が考えている 1 つの方法は、wsdl をダウンロードできるかどうかをテストすることです。より良い方法はありますか?

注: このアプリケーションの目的は、ユーザーがサービス名のみを知る必要があることです。サービスの対応する URL を記憶/保存する必要はありません。

この C# アプリケーションの Web サイト バージョンとデスクトップ アプリケーション バージョンが必要です。

注: 既存のサービスは WCF を使用しています。ただし、将来的には、WCF 以外のサービスが追加される可能性があります。

注: 私のプログラムは、サービス内の操作を認識しません (または関心がありません)。そのため、サービス操作を呼び出すことはできません。

参照

  1. ping を使用せずに Web サービスが稼働しているかどうかを確認する方法は?
  2. C プログラム - Web サービスが実行されているかどうかを確認する方法
4

2 に答える 2

40

これは機能を保証するものではありませんが、少なくとも URL への接続を確認できます。

var url = "http://url.to.che.ck/serviceEndpoint.svc";

try
{
    var myRequest = (HttpWebRequest)WebRequest.Create(url);

    var response = (HttpWebResponse)myRequest.GetResponse();

    if (response.StatusCode == HttpStatusCode.OK)
    {
        //  it's at least in some way responsive
        //  but may be internally broken
        //  as you could find out if you called one of the methods for real
        Debug.Write(string.Format("{0} Available", url));
    }
    else
    {
        //  well, at least it returned...
        Debug.Write(string.Format("{0} Returned, but with status: {1}", 
            url, response.StatusDescription));
    }
}
catch (Exception ex)
{
    //  not available at all, for some reason
    Debug.Write(string.Format("{0} unavailable: {1}", url, ex.Message));
}
于 2012-08-23T14:54:11.053 に答える