2010-11-13 186 views
3

我在將WebRole(WCF服務)部署到Azure時遇到問題。我的WebRole至少持續30分鐘,直到我放棄它。我通過Visual Studio 2010進行部署。我在尋找一些跟蹤信息,並且有幾個博客指出我的存儲表名爲WADInfrastructureLogsTableWADLogsTable診斷/日誌存儲表在哪裏?

我已經設置了配置設置與我的存儲帳戶這樣的:

<ConfigurationSettings> 
    <Setting name="DiagnosticsConnectionString" 
    value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" /> 
</ConfigurationSettings> 

我沒有在表中所有我的存儲賬戶。甚至在我已經成功部署了Hello World應用程序之後。我的Blob容器包含一個vsdeploy和一個wad控件容器,我有4個隊列。

將要創建這些表?

public override bool OnStart() 
    { 
     var dm = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
     dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5); 
     dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
     DiagnosticMonitor.Start("DiagnosticsConnectionString", dm); 

     Trace.WriteLine("OnStart"); 
     // For information on handling configuration changes 
     // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. 
     RoleEnvironment.Changing += RoleEnvironmentChanging; 

     return base.OnStart(); 
    } 
+0

請參見我的博客http://blogs.msdn.com/b/windowsazure/archive/2012/10/25/using-trace-in-windows-azure-cloud-applications-1.aspx你不應該設置diag字符串在你的web.config文件中。 – RickAndMSFT 2012-11-20 07:06:02

回答

2

我也有類似的問題。我有'轉移'期間設置爲1分鐘,它不會轉移。但是,在我將其更新爲5分鐘後,我開始在WADLogsTable中看到跟蹤消息。不知道爲什麼這有所作爲,並沒有找到任何有關最短轉換時間的文檔,但5分鐘爲我工作。

另外,還要確保你有適當的Trace.Writeline()在Web /輔助角色聲明。

+0

1分鐘工作正常。小於1的任何值都會被取整爲1分鐘。 – RickAndMSFT 2012-11-20 07:06:43

2

您是否設置了日誌表的傳輸計劃?也就是說,所有的日誌記錄都被緩存在每個實例中,並且您需要明確要求將數據定期保存在表存儲中。這裏有一個簡單的例子爲WADLogsTable:

 var dm = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
     dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5); 
     dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
     DiagnosticMonitor.Start("DiagnosticsConnectionString", dm); 

一旦建立起來,你應該看到WADLogsTable表出現了一段時間後。

你需要設置傳輸週期和篩選每一個其他類型的還有:

  • 事件日誌
  • 診斷基礎設施日誌
  • 目錄
  • 性能計數器
+0

感謝您的回答。現在我已經設置了預定的轉移,我不給我WADLogsTable。我也試圖創造一個全新的存儲空間,但在那裏也沒有運氣。 – 2010-11-13 14:27:33

+1

1.確保實際調用Trace.traceInformational()(或任何其他級別),可能在您的卷軸。cs在調用DiagnosticMonitor.Start()之後,生成要傳輸的內容。然後等待幾分鐘(無需退出應用程序)。偶爾需要幾分鐘才能創建表格。 – 2010-11-13 14:54:02

+1

@DavidMakogon:非常有幫助!不要使用Trace.WriteLine()或Trace.Write(),但使用Trace.TraceInformation,Trace.TraceError,Trace.TraceWarning。如果沒有這個WADInfrastructureLogsTable note創建 – 2012-02-21 15:00:29

1

索倫 - 如果你有沒有準備好,你應該重新生成存儲帳戶訪問鍵。它在您的原始文章中列出了您的配置細節。

另一種選擇,以幫助診斷你的問題的IntelliTrace。如果您使用的是Visual Studio 2010 Utimate,則可以在部署中啓用Intellitrace。這可以讓你下載Intellitrace日誌文件,從這些文件中你可以看到與應用程序的部署和啓動相關的一些非常詳細的信息。可能會產生一些異常或其他錯誤,可能會導致長時間「忙碌」狀態。