2015-06-14 158 views
0

我想在我的表存儲中記錄發生的每個異常(MVC cloudapp)。Azure - 爲worker/web角色啓用診斷

我跟着微軟的官方教程,但似乎他們只是太複雜了。教程可以在這裏查看: https://azure.microsoft.com/sv-se/documentation/articles/cloud-services-dotnet-diagnostics/#how-to-enable-diagnostics-in-a-worker-role

它只是覺得它太麻煩了,僅僅是因爲默認情況下不支持Azure診斷程序1.3?在Web/Worker角色的配置窗口中有一個更快更簡單的選項,讓您啓用診斷,但僅適用於1.0版本?

我只想在我的存儲帳戶中記錄異常,所以Azure診斷1.0應該足夠了,不是嗎?

我做了什麼:

  1. 中通過點擊網頁和輔助角色的配置窗口中的複選框我的工作人員和Web角色啓用診斷。
  2. 指定存儲帳戶憑證。

我需要什麼幫助:

沒有WAD容器在我的存儲帳戶創建。在啓用並指定存儲帳戶憑證後,是否應該創建它們?

爲什麼啓用Azure診斷程序1.3與1.0相比如此複雜?

工作者角色診斷和網絡角色診斷有什麼區別?如果我有我的應用程序在webrole和工作角色的緩存..它是然後單獨記錄?如果我想要應用程序和緩存的異常日誌記錄,我是否需要啓用它們?

+0

你如何部署你的代碼? Visual Studio,Portal或其他東西? –

+0

視覺工作室。右鍵單擊包含我的角色的Azure項目>發佈爲cloudapp。 – Reft

回答

1

回答您的問題:

沒有WAD容器在我的存儲帳戶創建。在我啓用並指定了存儲 帳戶憑證後,它們是否應該創建爲 ?

如果您正在尋找wad-control-container,那麼它將不會被創建。但是,如果您在診斷配置中啓用了IIS日誌,請求失敗日誌和崩潰轉儲,則應該會看到容器。

爲什麼啓用Azure診斷程序1.3與 1.0相比如此複雜?

本質上診斷模型已經改變。 版本1.0是插件模型,而版本1.3是擴展模型(它在引入版本1.2時從SDK 2.5更改)。無論它是複雜的,我認爲這是有爭議的。雖然1.0版本相當簡單,並且具有一些功能,例如在代碼中定義診斷配置,但我認爲1.3是朝正確方向邁出的一步。我也從一開始就對此感到沮喪,但現在我意識到它在我更多地使用它時所帶來的好處。一些吸引我的好處是:

  • 純decalarative模型來代替混合模型(編程+ Decalarative)。
  • 爲雲服務和虛擬機收集診斷數據的統一方法(此時僅限於Windows)。
  • 能夠啓用/禁用診斷配置,因爲它現在是擴展模型。
  • 支持ETW日誌。

一些我不喜歡1.3的東西:

  • 部署過程頗爲曲折,如果你不通過Visual Studio部署。
  • 有限的工具支持。只有您可用的選項是Visual Studio或PowerShell。目前,Portal(當前和預覽)不支持它。
  • 已棄用On-Demand Transfer功能。我們大量使用這個功能,現在不推薦使用它,因爲它依賴於基於代碼的診斷更改。

什麼是輔助角色的診斷和Web角色 診斷之間的區別?

AFAIK,有兩者之間沒有什麼區別。這完全取決於您想要爲每個角色收集哪些診斷數據。

如果我有我的應用程序在webrole和工作角色的緩存。然後是 單獨記錄?

好,yes和no。每個角色都有自己的diagnostics.wadcfgx文件,您可以在其中定義用於存儲診斷數據的存儲帳戶。如果您在每個角色的wadcfgx文件中定義不同的存儲帳戶,那麼數據將進入單獨的存儲帳戶。即使保留相同的存儲帳戶,數據也將具有role namerole instance name,以便您可以區分不同的診斷數據。

如果我想爲應用程序 和緩存設置異常日誌記錄,是否需要啓用它們?

是的。您需要啓用它們。

+0

嗨,非常感謝!關於我鏈接的教程..您是否知道使用Azure Powershell爲工作角色安裝診斷程序的另一種方法? (步驟5)。我遇到的問題是PowerShell似乎不喜歡帶有空間的工作角色名稱,例如「我的工作者角色」。我必須使用PowerShell嗎? – Reft

+0

看看這個博客文章是否有幫助:http://www.rajinders.com/2015/05/03/azure-sdk-2-6-diagnostics-improvements-for-cloud-services/。我發現它非常有幫助。不確定角色名稱中的空格。 –