c#ping一个网站? (保持活力服务)

时间:2010-11-19 14:43:13

标签: c# asp.net keep-alive

c#中是否有一种方法可以每隔15分钟ping一个url并从服务器上获得响应?

我想尝试查看.net是否可用于构建一个简单的工具,让asp.net网站调用重新构建,以便第一个用户在应用程序启动时不会产生负载损失。 / p>

或者如果有人有另一种方法来实现同一目标...... 想法?提示?想法?

6 个答案:

答案 0 :(得分:9)

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

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

然后使它成为一个exe并使用Windows调度程序来运行它。甚至可以将它放在WinService中并将状态报告给日志文件。

<强>更新

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

此外,如果您发现需要经常访问它(如上所述,每15分钟一次),您可能需要查看重新配置IIS / AppPool并将周期时间更改为更长的时间。 IIS本身可以节省未使用的资源,因此如果一段时间内未查询某个站点,它将实际释放内存以供其他应用程序使用。

答案 1 :(得分:5)

答案 2 :(得分:3)

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

答案 3 :(得分:1)

您可以发起WebRequest - ping不会让网站重建。

答案 4 :(得分:1)

我会安装curl并使用计划任务来执行您想要的操作。

我已将它与powershell结合使用,以重启应用池。

答案 5 :(得分:0)

您可以NGEN ASP.NET程序集并将其与Hectorwarm-up answer结合使用。