2010-11-19 112 views
6

有没有办法在C#能够每15分钟ping一个网址,并从服务器得到回应?c#ping一个网站? (保活服务)

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

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

回答

9

通常情况下,推送发布的人在上传该网站之后应该访问,仅供测试用(请确保没有任何内容被炸掉)。但是,如果你正在寻找一个编程方法,WebClient可能会有所帮助......

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

然后让一个exe和使用Windows计划运行它。甚至可以把它放在一个WinService中并将状态报告给日志文件。

更新:

它看起来像VS2012现在打开之后发布的网页,使这些推网站是第一个请求。另外,如果你发现你不得不频繁访问它(每隔15分钟提问一次),你可能需要重新配置IIS/AppPool并将周期时间改为更长的时间。 IIS本身保存未使用的资源,因此如果某个站点在一段时间内未被查询,它实际上会释放内存供其他应用程序使用。

+0

“通常情况下,推送发布的人在上传该网站后应该访问”绝对会发生什么! – 2010-11-19 15:14:56

+1

@Greg B在负载平衡环境中情况并非总是如此。如果你有100台服务器呢? – 2012-08-23 22:14:43

+0

@ RobStevenson-Leggett公平点。尽管我希望负载平衡器或应用程序能够在此范围内进行一些健康监控。 – 2012-08-24 09:00:01

3

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

1

你可以发射一个WebRequest - 一个ping不会让网站重建。

1

我安装curl和使用计划的任务来完成你想要的。

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