2

我有一个托管在 azure 上的 wcf 服务。当我部署它并启动自动缩放器对象时,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();
    }
}
4

2 回答 2

0

您是否尝试过使用 IntelliTrace 来诊断回收的原因?这是一篇很好的文章,介绍了如何使用 IntelliTrace 进行设置和故障排除。

于 2012-11-08T18:52:06.247 回答
0

你的 Run 方法是什么样的?它需要保持角色活着,所以它应该是这样的:

    public override void Run()
    {         
        Trace.TraceInformation("ScalerRole entry point called", "Information");

        while (true)
        {
            Thread.Sleep(100000);
            Trace.TraceInformation("Working", "Information");
        }
    }
于 2013-06-17T12:18:18.027 回答