我在azure上托管了一个wcf服务。当我部署它并启动autoscaler对象时,Web服务角色将不断被回收并处于不健康状态。如果我没有启动自动缩放器我没有问题,但我想使用WASABi。
这是我的WebRole.cs
ublic class WebRole : RoleEntryPoint
{
private Autoscaler autoscaler;
public override bool OnStart()
{
// To enable the AzureLocalStorageTraceListner, uncomment relevent section in the web.config
DiagnosticMonitorConfiguration diagnosticConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();
diagnosticConfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
diagnosticConfig.Directories.DataSources.Add(AzureLocalStorageTraceListener.GetLogDirectory());
// For information on handling configuration changes
// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
autoscaler = EnterpriseLibraryContainer.Current.GetInstance<Autoscaler>();
autoscaler.Start();
return base.OnStart();
}
public override void OnStop()
{
autoscaler.Stop();
}
}
答案 0 :(得分:0)
您是否尝试过使用IntelliTrace来诊断回收的原因?这是一个很好的article描述如何使用IntelliTrace进行设置和故障排除。
答案 1 :(得分:0)
您的Run方法是什么样的?它需要让角色保持活力,所以它应该是这样的:
public override void Run()
{
Trace.TraceInformation("ScalerRole entry point called", "Information");
while (true)
{
Thread.Sleep(100000);
Trace.TraceInformation("Working", "Information");
}
}