c# ping a website? (keep-alive service)

前端 未结 6 2022
感情败类
感情败类 2021-01-05 16:02

is there a way in c# to be able to ping a url every 15 minutes and get a response back from the server?

i want to try to see if .net can be used to build a simple to

相关标签:
6条回答
  • 2021-01-05 16:14

    Typically the person pushing a release should visit after they've uploaded the site just for test sake (make sure nothing bombed out). But if you're looking for a programmatic approach, WebClient may be helpful...

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

    Then make it an exe and use the windows scheduler to run it. Could even put this in a WinService and report status to log files.

    Update:

    It looks like VS2012 now opens the page after a publish, making those pushing the site be the first-request.

    Also, if you find you're having to visit it that frequently (every 15 minutes as mentioned in question) you may want to look in to reconfiguring the IIS/AppPool and change the cycle time to something longer. IIS natively conserves resources that are not used, and so if a site hasn't been queried in a while it will actually release the memory for another application to use.

    0 讨论(0)
  • 2021-01-05 16:16

    I'd install curl and use a scheduled task to do what you want.

    I've combined it with powershell to restart app pools too.

    0 讨论(0)
  • 2021-01-05 16:28

    You might not need to write your own:

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

    0 讨论(0)
  • 2021-01-05 16:32

    You could create a HttpWebRequest and use something like Quartz.NET to schedule it.

    0 讨论(0)
  • 2021-01-05 16:34

    You can just fire off a WebRequest - a ping won't get the website to rebuild.

    0 讨论(0)
  • 2021-01-05 16:41

    You can NGEN your ASP.NET assemblies and combine that with Hector's warm-up answer.

    0 讨论(0)
提交回复
热议问题