我在 azure 上有一个网络角色,我想强制 Application_Start 而不等待第一个请求。
我设法在我的网站上将“自动启动”属性设置为 true
但是 Application_Start 直到第一个请求到来时才被调用。
我不知道我是否在这里遗漏了一些重要的东西。服务器是W2008 R2,IIS版本是7.5
谢谢!
解决方案
我把解决方案代码放在这里。我希望能帮助某人。我刚刚添加了一个 WebRole.cs,然后将该代码设置为每 30 秒执行一次 ping。请注意我正在浏览 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();
}
}