我試圖確保我正在運行的一段代碼的服務器是Web前端服務器。我想這可能是這樣簡單:這將返回「應用程序」,並不能正確識別它作爲Sharepoint/C#:確定本地服務器是否爲Web前端
SPServer.Local.Role.ToString().Equals("WebFrontEnd")
但是,如果你除了應用服務器等在同一機器上運行您的WFE一個web前端。
我的想法是通過確定Microsoft SharePoint Foundation Workflow Web應用程序(服務)是否已啓動並在服務器上運行。這可以通過轉到中央管理>系統設置>管理服務器上的服務來確定。
我需要在C#中以編程方式執行此操作。我相當肯定,這些服務和他們的狀態可以通過powershell獲得,這是一個可行的解決方案,但我不知道如何做到這一點。
編輯 - 我所知道的一種方式來遍歷「服務」使用下面的代碼:
SPServiceCollection services = SPFarm.Local.Services;
foreach (SPService service in services) {
}
然而,這包括一些項目是「服務下一臉狐疑類似於列表服務器上「但都列爲」在線「狀態,似乎不包括此。
事實上,這確實奏效。先生,幹得好。我最終通過檢查它的類型「Microsoft.SharePoint.Administration.SPWebServiceInstance」來測試它,除了它實際上稱爲「SPWebServiceInstance」,儘管我希望後者不會隨着不同的語言而改變。 – tnw