我正在疯狂地想出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诊断中设置了自定义计划:
但是,我找不到任何日志文件,TableStorage
中的表格或BlobContainers
中包含上述Trace
个语句的blob。
我看到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.<InitializeRole>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 :(得分: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引用的Microsoft.WindowsAzure.ServiceRuntime版本早于您正在部署的2.4版本。您可以将该依赖DLL升级到最新的ServiceRuntime,也可以在配置文件中添加绑定重定向以强制该依赖DLL使用2.4 ServiceRuntime。