2014-08-30 82 views
0

我想要疯狂地弄清楚WebRole.OnStart()中出了什么问题。我知道其中问题正在发生。我只是不知道什么的问题是。Azure如何从WebRole.OnStart记录异常

我加入以下到web.config中:

<system.diagnostics> 
    <trace> 
     <listeners> 
     <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, 
      Microsoft.WindowsAzure.Diagnostics, 
      Version=2.4.0.0, 
      Culture=neutral, 
      PublicKeyToken=31bf3856ad364e35" 
      name="AzureDiagnostics"> 
      <filter type="" /> 
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

我还增加了以下内容WebRole.OnStart()

Trace.TraceInformation("OnStart()"); 

try 
{ 
    CallMethodThatCausesException(); 
} 
catch (Exception ex) 
{ 
    Trace.TraceError("Exception: " + ex.ToLogString()); 
    throw; 
} 

我还设置自定义计划在WebRole诊断:

但是,I找不到任何日志文件,TableStorage中的表或BlobContainers中包含上述Trace陈述中的任一个的斑点。

我确实看到WADLogsTable但我看到的唯一条目是Loaded "Microsoft.WindowsAzure.ServiceRuntime, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

事件日志中我看到一个异常在:

Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException Stack: at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.&lt;InitializeRole&gt;b__0() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()

任何帮助将不胜感激!

+0

您是否配置了Web角色的诊断?右键单击Web角色(在Cloud Service项目中的角色下) - >属性 - >配置选项卡 - >诊断。 – 2014-08-30 06:02:41

+0

@GauravMantri是的。我只是用截图更新了问题。 – devlife 2014-08-30 15:06:06

+0

跟踪日志信息存储在WADTraceLogs表中。您应在您配置用于存储诊断信息的存储帐户中看到此表。您的角色是否仅在模拟器或云中崩溃?您可以尝试的另一件事是启用Web角色上的远程桌面并连接到该框并在那里检查事件日志。 – 2014-08-30 15:09:58

回答

1

您可以使用http://blogs.msdn.com/b/kwill/archive/2013/08/09/windows-azure-paas-compute-diagnostics-data.aspx的故障排除方案调试您遇到的几乎任何角色启动类型的问题。特别是,检查http://blogs.msdn.com/b/kwill/archive/2013/10/03/troubleshooting-scenario-7-role-recycling.aspx,它会遇到与您遇到的几乎相同的情况。

我怀疑你的问题是你引用的另一个DLL引用了一个比你正在部署的2.4版本早的Microsoft.WindowsAzure.ServiceRuntime版本。您可以将该依赖DLL升级到最新的ServiceRuntime,也可以在配置文件中添加绑定重定向,以强制依赖的DLL使用2.4 ServiceRuntime。