4

ASP.Net 3.5 Web アプリ (C#) があり、別のサイト (ASP.Net ではない) が稼働しているかどうかをプログラムで確認する必要があります。現在、StatusCode 200 をチェックする次のコードのメソッドがあります。発生している問題は、表示される IIS7 スプラッシュ ページがステータス コード 200 を返し、他に何も表示されないことです。期待しているページが実際に表示されることを確認できる応答オブジェクト。このリンクで (同様に) 行うように、応答を返して StreamReader を使用してページ上の div を探して (可能であれば) 有効であることを確認することは避けたいと思います。

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlToCheck);
        request.AllowAutoRedirect = true;

        HttpWebResponse response;
        try
        {
            response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                return true;
            }
            return false;
        }
        catch (Exception)
        {
            return false;
        }

どんな助けでも大歓迎です。

4

2 に答える 2

5

それはすでにそこにあり、待っていることを読んでくださいResponse

Stream s = response.GetResponseStream();
StreamReader r = new StreamReader(s);
string html = r.ReadToEnd();

// IIS7
if(html.Contains(@"<div id=""container"">
<a href=""http://go.microsoft.com/fwlink/?linkid=66138&amp;clcid=0x409""><img src=""welcome.png"" alt=""IIS7"" width=""571"" height=""411""></a>
</div>") {


}
于 2013-06-06T14:34:34.440 に答える
0

他のアプリケーションから返されたヘッダーを調べてください。ほとんどの場合、IIS のスプラッシュ スクリーンと比較して、いくつかの追加のヘッダーが表示されます。たとえば、 を指定する場合がありますCache-Control。応答にそのヘッダーがない場合は、スプラッシュ スクリーンであると予想できます。

于 2013-06-06T14:33:58.843 に答える