0

午後の皆さん、

基本的に会社の内部 Web サイトをリストする Web ページを作成する必要があります。基本的に、Web アプリが稼働しているかどうか、または失敗したかどうかを表示するステータス画面を確認する必要があります。関連付けられているデータベース インスタンスに対しても同じことを行う必要があります。

ASP.net 2010 サイトで、各 Web サイトのこのチェックを完了する VB コードを作成するのに役立つ情報を探しています。

このタスクを完了する方法については 100% 確信が持てませんが、アプリケーション名またはこれが配置されている Web ボックスに Ping できると思いますか?

インスピレーションを得るために、次のサイトとコード サンプルを見てきましたが、それ以上進んでいないようです。

誰かが今後の最善の方法をアドバイスし、私をさらに助ける何かを提案することは可能でしょうか?

よろしくお願いします。ベティ

4

1 に答える 1

0

私はあなたがその技術を使っているのを見ました。ネットマイクロソフト。そして、あなたのサイトとアプリケーションは「IIS」でホストされていると思いますか?

クラス「 DirectoryEntry」とその複数のプロパティを使用できるはずです。このように、「ISS」でホストされている Web サイトや Web アプリケーションの状態を確認したり、アプリケーション プールの状態を確認したりできます。

使用する名前空間: System.DirectoryServices( C#およびASPで利用可能)

「DirectoryEntry」とそのプロパティの詳細: DirectoryEntry 情報

このようなもの:

//Get the webSite ID
public static int GetWebsiteID(string websiteName)
{
     string machineName = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
     DirectoryEntry w3svc = new DirectoryEntry("IIS://"+machineName+"/w3svc");
     int id = 1;
     foreach(DirectoryEntry de in w3svc.Children)
     {
          if(de.SchemaClassName == "IIsWebServer" && de.Properties["ServerComment"][0].ToString() == websiteName)
           {
                id = int.Parse(de.Name);
           }

     }
     return id;
}

//Check statut of webSite
public void checkStatutWebSite()
{
     DirectoryEntry myWebSite = new DirectoryEntry(string.Format("IIS://" + machineName + "/w3svc/{0}/Root", GetWebsiteID("webSiteName")));
     ServerState state = (ServerState)Enum.Parse(typeof(ServerState), myWebSite.Properties["ServerState"].Value.ToString())
     if (state == ServerState.Stopped || state == ServerState.Paused)
     {
         //site is stopped
     }

}

public enum ServerState
{
    Unknown = 0,
    Starting = 1,
    Started = 2,
    Stopping = 3,
    Stopped = 4,
    Pausing = 5,
    Paused = 6,
    Continuing = 7
}

これがお役に立てば幸いです。

于 2013-05-08T14:16:10.613 に答える