0

(Windows Server 2012 R2) フェールオーバー クラスターで専用の役割の汎用サービスとして実行する Windows サービスがあります。つまり、フェールオーバー クラスター マネージャーでこのサービス用に構成されたホスト名と IP アドレスがあります。(以前の Windows サーバーのリリースでは、「ロール」は「グループ」と呼ばれていたと思います)。

要件の 1 つは、サービスが実行されているロールのホスト名を認識/提供する必要があることです。System.Net.Dns.GetHostName()サービスが現在アクティブになっている物理サーバーの名前を返しますが、必要なのはロールの構成済みホスト名です。

System.ServiceProcesses 名前空間のdns APi 方向MS ドキュメントの両方を検索しましたが、これらのリソースからこれを理解できませんでした。

これを取得できる.Net APIはありますか、それとも完全に間違ったアプローチですか? (つまり、この情報は、インストール中に構成データベースに書き込まれ、そこから取得する必要があります)。

4

1 に答える 1

0

フェールオーバー クラスタリング用の .NET API があります。ここを参照してください -

ご質問については、すべてのロールに OwnerNode プロパティがあり、この WMI クラスが役立つと思います。

MSCluster_Node クラス

[Dynamic, Provider ("MS_CLUSTER_PROVIDER"), UUID ("{C306EBED-0654-4360-AA70-DE912C5FC364}")]class MSCluster_Node : CIM_UnitaryComputerSystem
{   
 string             Roles[];
}

https://msdn.microsoft.com/en-us/library/aa371446(v=vs.85).aspx

メソッドにドリルダウンすると、 - もあります

  • CLUSCTL_NODE_GET_ID を持つ ExecuteNodeControl メソッド

https://msdn.microsoft.com/en-us/library/cc512216(v=vs.85).aspx

上記が役に立たない場合は、以下のリファレンスを試すこともできます。

MSCluster_ResourceToPossibleOwner クラスは、リソースと可能な所有者ノードのリストを表す動的関連付け WMI クラスです。

これが役に立てば幸いです。私はフェールオーバー クラスタリングと C# を使用するのは初めてです。この投稿からも学ぶことができれば幸いです。

于 2015-03-18T17:04:01.633 に答える