2016-06-17 84 views
8

我的應用程序之一的一個Service Fabric Cluster部署失敗,並引發不健康的評價與錯誤事件說:There was an error during CodePackage activation.The service host terminated with exit code:3762504530Azure的服務織物激活錯誤

然而,在應用程序部署的節點上,健康狀況表明: The application was activated successfully.

有什麼辦法可以獲得有關錯誤事件的更詳細的報告嗎?

回答

16

我通常是通過RDP連接到受影響的節點,並做下列事情在這種情況下:

  • 檢查控制檯輸出/控制檯錯誤日誌:服務布店控制檯輸出(如果啓用通過您的ServiceManifest.xml中的<ConsoleRedirection>)和日誌文件夾中的錯誤。在您的DEV羣集上,這應該是C:\SfDevCluster\Data\_App\Node.x\<ApplicationTypeFolder>\log。在Azure中的默認安裝中,它應該是D:\SvcFab\_App\<ApplicationTypeFolder>\log

  • 事件日誌:.NET異常有時在「應用程序」日誌顯示出來,但服務面料也有其自己的子文件夾中可能包含有用的事件。

  • PerfView:PerfView是監測ETW事件(Windows的事件跟蹤)的非常強大的工具。由於.NET異常會記錄爲ETW事件,因此PerfView可能會向您顯示有用的例外情況。這裏有一個快速教程:

    • 下載並運行PerfView
    • 轉到 「收集 - >收集」。取消選擇「合併」。
    • 點擊「開始收集」。
    • 現在通過Process Explorer終止您的服務結構服務,以防運行。過了一會兒,Service Fabric將再次啓動它。
    • 如果您的服務沒有運行,請重新部署您的服務。
    • 服務失敗後,在PerfView中按「停止收集」。
    • 現在雙擊左側樹中的「事件」 - 這將打開所有記錄的ETW事件。
    • 搜索「Microsoft-Windows-DotNETRuntime/Exception/Start」,然後雙擊它。
    • 您現在應該可以看到發生的所有.NET異常,按時間排序。
+0

基督教,有節點爲C上沒有這樣的文件夾:\ ProgramData \微軟\ SF \即使我設置ConsoleRedirection內ServiceManifest.xml –

+0

我的集羣仍然在預覽版本,但我懷疑他們改變了GA中的文件夾。請注意「C:\ ProgramData」是一個隱藏文件夾。 –

+0

ProgramData \ Microsoft在那裏,但不是SF –