簡體   English   中英

Sharepoint / C#:確定本地服務器是否為Web前端

[英]Sharepoint/C#: Determining if local server is Web Front End

我正在努力確保我正在運行一段代碼的服務器是一個Web前端服務器。 我覺得它可能就像這樣簡單:

SPServer.Local.Role.ToString().Equals("WebFrontEnd")

但是,如果您在同一個盒子上運行WFE以及app服務器等,則會返回“應用程序”並無法將其正確識別為Web前端。

我的想法是確定Microsoft SharePoint Foundation工作流Web應用程序(服務)是否已在服務器上啟動並運行。 這可以通過轉到中央管理員>系統設置>管理服務器上的服務來確定。

我需要在C#中以編程方式執行此操作。 我很確定這些服務及其狀態可以通過powershell獲得,這是一個可行的解決方案,但我不知道如何做到這一點。

編輯 - 我知道使用以下代碼循環“服務”的方法:

SPServiceCollection services = SPFarm.Local.Services;

foreach (SPService service in services) {

}

但是,這包括一些看起來與“服務器上的服務”下的列表非常類似的項目,但都列出了狀態為“在線”,似乎不包括此項。

我不是在機器上檢查,但我覺得你會有更多的運氣與SPServer.Local.ServiceInstances - 這聽起來應該特別提供服務器在服務器而不是農場。

遺憾的是,即使這是可靠的,因為Foundation Web應用程序服務可以在不是實際前端服務器的服務器上運行(即負載均衡器永遠不會將流量引導到它們)。 最終它是負載平衡機制所具有的服務器列表,它確定哪些服務器是真正的前端,並且因為有各種類型的負載平衡器,並且沒有單個接口,所以我不相信有任何一種保證方法。確定服務器場中真正的Web前端數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM