强制应用程序启动Azure Web角色

Jor*_*rdi 6 azure iis-7.5 webrole

我在azure上有一个web角色,我想在不等待第一个请求的情况下强制执行A​​pplication_Start.

我设法在我的网站上将"自动启动"属性设置为true

在Azure WebRole上自动启动WCF

但是在第一个请求到来之前不会调用Application_Start.

我不确切地知道我是否遗漏了一些重要的东西.服务器是W2008 R2,IIS版本是7.5

谢谢!

我把解决方案代码放在这里.我希望能帮助别人.我刚刚添加了一个WebRole.cs,只需将该代码放入每30秒执行一次ping操作.请netice我正在浏览Service.svc,因为这是我的端点,你的端点可能是另一个端点.请注意,我要求"Endpoint1".如果您有多个端点,则应该查看该行.

public class WebRole : RoleEntryPoint
{        
    public override void Run()
    {            
        var localuri = new Uri( string.Format( "http://{0}/Service.svc", RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint ) );

        while (true)
        {
            try
            {                    
                var request = (HttpWebRequest)WebRequest.Create(localuri);
                request.Method = "GET";
                var response = request.GetResponse();
            }
            catch { }
            System.Threading.Thread.Sleep(30000);
        }            
    }

    public override bool OnStart()
    {               
        return base.OnStart();
    }
}
Run Code Online (Sandbox Code Playgroud)

sha*_*oth 3

IIS 仅在第一个请求到达时启动。OnStart解决方法是从内部或您的后代向同一虚拟机发送 HTTP 请求RoleEntryPoint- 这很容易使用WebRequest或等效类。