針對服務勾點進行疑難解答
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
使用本文來取得常見問題的一般疑難解答指引和解答(常見問題)。
檢視活動和偵錯問題
Web 存取管理員中的 [服務勾點] 頁面會顯示您最近每個訂用帳戶的活動(過去 14 天),以及訂用帳戶已啟用、停用或限制。
您可以存取訂用帳戶的詳細歷程記錄,包括詳細的要求/回應數據,這對於偵錯有問題的服務或訂用帳戶很有用。
若要檢視訂用帳戶的活動和狀態,請移至 [服務勾點 ] 頁面。
若要檢視訂用帳戶的詳細活動,包括完整要求、回應和事件承載數據,請選取數據表中的訂用帳戶,然後選取 [ 歷程記錄]。
訂用帳戶失敗和緩刑(受限)
失敗類型
來自服務勾點通知的失敗會分組為下列類別:
- 終端機失敗
- 暫時性失敗
- 持久失敗
終端機失敗
唯一的終端機失敗是 HTTP 狀態代碼 410 (已消失)。 當訂用帳戶看到終端機失敗時,無論其先前的狀態為何,它都會自動停用。
暫時性失敗
當訂用帳戶看到暫時性失敗時,它會嘗試重新傳送通知最多八次,每次嘗試之間的延遲增加。 暫時性失敗包括下列程式代碼:
- 408 (要求逾時)
- 502 (不正確的閘道)
- 503 (服務無法使用)
- 504 (閘道逾時)
暫時性失敗的重試順序
重試# | 等待時間 |
---|---|
重試 1 之前 | wait ~1 秒 |
重試 2 之前 | 等候 ~2 秒(總延遲 3 秒) |
重試 3 之前 | 等候 ~4 秒(總延遲 7 秒) |
重試前 4 | 等候 ~8 秒(總延遲為 15 秒) |
重試前 5 | 等候 ~16 秒(總延遲 31 秒) |
重試 6 之前 | 等候 ~32 秒(總延遲 63 秒) |
重試 7 之前 | 等候 ~60 秒(最大輪詢時間,總延遲為 123 秒) |
重試 8 之前 | 等候 ~60 秒(最大輪詢時間,總延遲為 183 秒) |
如果通知用盡其所有重試,並繼續看到每次嘗試的暫時性失敗,訂閱會停止嘗試傳送通知,並將通知視為「持續失敗」。
持久失敗
持久失敗包括所有其他 HTTP 失敗碼,例如:404(找不到)、500(內部伺服器錯誤)等等。
當訂用帳戶看到「持久失敗」時,它會放在緩刑上。
緩刑
在緩刑時,訂用帳戶會受限於可以傳送的通知數目。 如果訂用帳戶持續達到「持續失敗」,則會越來越有限,且最終會停用。 如果訂閱在緩刑時收到成功的回應,則會還原至完全啟用的狀態。
訂用帳戶處於緩刑時,重試次數上限為 7 次的順序
當訂用帳戶處於緩刑狀態時,任何新事件都會遺失。 重試成功之後,就會啟用訂用帳戶,並再次發佈事件。
重試# | 等待時間 |
---|---|
重試 1 之前 | 等候 ~20 分鐘 |
重試 2 之前 | 等候 ~40 分鐘 (總緩刑時間 1 小時) |
重試 3 之前 | 等候 ~1 小時 20 分鐘(總緩刑時間為 2.33 小時) |
重試前 4 | 等候 ~2 小時 40 分鐘 (總緩刑時間 5 小時) |
重試前 5 | 等候 ~5 小時 20 分鐘 (總緩刑時間 10.33 小時) |
重試 6 之前 | 等候 ~10 小時 40 分鐘 (總緩刑時間 21 小時) |
重試 7 之前 | 等候 ~15 小時(最大輪詢時間,總緩刑時間為 36 小時) |
重試七次之後,如果通知取用者失敗,訂用帳戶狀態會設定為 DisabledBySystem 。
常見問題集
問:服務攔截的承載限制為何?
答: 承載限制為 2 MB。 較大的承載會導致效能及可靠性降低。 最佳做法是,服務掛勾應該將承載限制為 2 MB 或更少。
問:已啟用狀態 (受限制) 是什麼意思?
答: 如果發生太多失敗,訂用帳戶就會受到限制。 已啟用 (受限制) 與在緩刑時相同。
問:狀態停用(因失敗)是什麼意思?
答:在長時間 連續失敗或遇到終端機失敗 之後,訂用帳戶會自動停用。 暫時性失敗 類型會在宣告失敗之前重試數次。 不會重試持久的失敗 類型。 以下是每種失敗類型的範例。
- 暫時性:408(要求逾時)、502(不正確的網關)、503(服務無法使用)、504(網關逾時)
- 終端機:410(消失)
- 持久:非暫時性或終端機的所有失敗
問:狀態為 Disabled (使用者左專案) 代表什麼意思?
答: 建立訂用帳戶的使用者不再是小組的成員。
問:如果服務勾點無法運作,該怎麼辦?
答: 檢查下列專案:
確認訂用帳戶已啟用
確認訂用帳戶設定正確 (事件篩選和動作)
查看歷程記錄,特別是在發生失敗時
問:我可以授與一般專案用戶檢視及管理服務鏈接訂閱專案的能力嗎?
答: 根據預設,只有專案管理員具有這些許可權。 若要向其他使用者直接授與這些權限,您可以使用命令列工具或安全性 REST API。
問:我是否可以以程序設計方式建立訂用帳戶?
答: 是,使用 REST API。