我正在尝试确保我当前正在运行一段代码的服务器是 Web 前端服务器。我认为它可能就像这样简单:
SPServer.Local.Role.ToString().Equals("WebFrontEnd")
但是,如果您在同一个盒子上运行 WFE 以及应用程序服务器等,这将返回“应用程序”并且无法正确地将其识别为 Web 前端。
我的想法是,通过确定 Microsoft SharePoint Foundation 工作流 Web 应用程序(服务)是否在服务器上启动和运行。这可以通过转到 Central Admin > System Settings > Manage Services on Server 来确定。
我需要在 C# 中以编程方式执行此操作。我相当确定这些服务及其状态可以通过 powershell 获得,这是一个可行的解决方案,但我不确定如何做到这一点。
编辑——我知道一种使用以下代码循环“服务”的方法:
SPServiceCollection services = SPFarm.Local.Services;
foreach (SPService service in services) {
}
但是,这包括一些看起来与“服务器上的服务”下的列表非常相似但都以“在线”状态列出的项目,并且似乎不包括这一点。