現在コードを実行しているサーバーがWebフロントエンドサーバーであることを確認しようとしています。私はそれがこれと同じくらい簡単かもしれないと思いました:
SPServer.Local.Role.ToString().Equals("WebFrontEnd")
ただし、同じボックスでアプリサーバーなどに加えてWFEを実行している場合、これは「アプリケーション」を返し、Webフロントエンドとして正しく識別できません。
私の考えは、Microsoft SharePoint FoundationワークフローWebアプリケーション(サービス)がサーバー上で開始および実行されているかどうかを判断することです。これは、[サーバーの全体管理]>[システム設定]>[サーバー上のサービスの管理]に移動することで確認できます。
これはC#でプログラムで行う必要があります。これらのサービスとそのステータスは、実行可能なソリューションであるPowerShellを介して取得できると確信していますが、どちらの方法でも取得できるかどうかはわかりません。
編集-私は次のコードを使用して「サービス」をループする方法を知っています:
SPServiceCollection services = SPFarm.Local.Services;
foreach (SPService service in services) {
}
ただし、これには、「サーバー上のサービス」の下のリストに疑わしいほど類似しているように見えるが、すべて「オンライン」のステータスでリストされており、これが含まれていないように見えるいくつかのアイテムが含まれます。