我在azure上有一个web角色,我想在不等待第一个请求的情况下强制Application_Start。在Azure Web角色上强制应用程序启动
我设法设置“自动启动”属性设置为true在我的网站
AutoStart a WCF on Azure WebRole
不过的Application_Start不叫,直到第一个请求到达。
我不知道我是否缺少重要的东西。服务器是W2008 R2和IIS版本是7.5
谢谢!
SOLUTION
我把解决代码在这里。我希望能帮助别人。我刚刚添加了一个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();
}
}
这就是我现在正在尝试的内容XD – Jordi
我刚刚用这个解决方案编辑了我的解决方案。谢谢! – Jordi
我为客户使用4种生产环境的相同解决方案。必须有多个节点(实例),随机请求会突然很慢,显然是因为它们在这些请求上运行App Start。如果需要,可以提供代码吗? – Ash