6

c# 中有没有办法能够每 15 分钟 ping 一次 url 并从服务器获得响应?

我想看看.net 是否可以用来构建一个简单的工具,让asp.net 网站调用重新构建,这样第一个用户在应用程序启动时就不会受到负载惩罚。

或者如果有人有实现相同目标的替代方法......想法?提示?想法?

4

6 回答 6

9

通常,推送发布的人应该在他们上传网站后访问,只是为了测试(确保没有被炸毁)。但是,如果您正在寻找一种程序化的方法,WebClient可能会有所帮助......

using (WebClient client = new WebClient())
{
  client.DownloadString("http://wwww.sitename.com/");
}

然后把它变成一个exe并使用windows scheduler来运行它。甚至可以将其放入 WinService 并将状态报告给日志文件。

更新:

看起来 VS2012 现在会在发布后打开页面,使那些推送站点的人成为第一个请求。

此外,如果您发现必须频繁访问它(如问题中提到的每 15 分钟一次),您可能希望重新配置 IIS/AppPool 并将周期时间更改为更长的时间。IIS 本身会保存未使用的资源,因此如果有一段时间没有查询某个站点,它实际上会释放内存供另一个应用程序使用。

于 2010-11-19T14:47:05.693 回答
5

您可能不需要自己编写:

http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

于 2010-11-19T14:49:17.207 回答
3

您可以创建一个 HttpWebRequest 并使用Quartz.NET之类的东西来安排它。

于 2010-11-19T14:45:32.560 回答
1

您可以启动WebRequest- ping 不会让网站重建。

于 2010-11-19T14:46:36.473 回答
1

我会安装curl并使用计划任务来做你想做的事。

我也将它与 powershell 结合起来重新启动应用程序池。

于 2010-11-19T14:50:55.850 回答
0

您可以对您的 ASP.NET 程序集进行NGEN并将其与Hector热身答案结合起来。

于 2010-11-19T14:55:26.207 回答