首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >request.GetResponse()超时

request.GetResponse()超时
EN

Stack Overflow用户
提问于 2015-04-17 04:38:57
回答 1查看 350关注 0票数 0

Waker.cs

代码语言:javascript
复制
class Waker
{
    Timer timer;
    public Waker()
    {
        timer = null;
    }
    public void WakeUpApplicationPool(object obj)
    {
        string url = "http://www.example.com";
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Program.LogToFile("WakeUpApplicationPool: " + response.StatusDescription);
            response.Close();
        }
        catch (Exception ex)
        {
            Program.LogToFile("WakeUpApplicationPool_Error: " + ex.ToString());
        }
    }
    public void Start()
    {
        TimerCallback callback = new TimerCallback(WakeUpApplicationPool);
        int DUE_TIME = 0; //The amount of time to delay before the callback parameter invokes its methods.
        int PERIOD = int.Parse(ConfigurationManager.AppSettings["WakerIntervalPeriod"]); //The time interval (miliseconds) between invocations of the methods referenced by callback
        timer = new Timer(callback, null, DUE_TIME, PERIOD);
    }
    public void Stop()
    {
        timer.Dispose();
    }

}

Program.cs:

代码语言:javascript
复制
static void Main(string[] args)
    {
        try
        {
            Waker waker = new Waker();
            waker.Start();
        }
        catch(Exception ex) 
        {
            LogToFile(ex.ToString());                
        }            
    }

日志文件:

代码语言:javascript
复制
15 Apr 2015 18:29:39 - WakeUpApplicationPool: OK

15 Apr 2015 18:31:39 - WakeUpApplicationPool: OK

15 Apr 2015 18:33:59 - WakeUpApplicationPool_Error: System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 205.144.171.35:80
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetResponse()
   at ConsoleReporting.Waker.WakeUpApplicationPool(Object obj)

15 Apr 2015 18:35:39 - WakeUpApplicationPool: OK

15 Apr 2015 18:37:39 - WakeUpApplicationPool: OK

15 Apr 2015 18:41:18 - WakeUpApplicationPool_Error: System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at ConsoleReporting.Waker.WakeUpApplicationPool(Object obj)

15 Apr 2015 18:43:18 - WakeUpApplicationPool_Error: System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at ConsoleReporting.Waker.WakeUpApplicationPool(Object obj)

15 Apr 2015 18:45:18 - WakeUpApplicationPool_Error: System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at ConsoleReporting.Waker.WakeUpApplicationPool(Object obj)

15 Apr 2015 18:47:18 - WakeUpApplicationPool_Error: System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at ConsoleReporting.Waker.WakeUpApplicationPool(Object obj)

问题是:

  1. 我的代码在命中超时错误后无法工作。但是在我重新启动Program.exe之后,它再次工作,但是它在10分钟后命中了超时错误。
  2. 我想使用这个Program.exe唤醒我在宿主提供商托管的应用程序池。
  3. 所以谁能告诉我原因和解决办法是什么?我提到了this,但它也不适用于我的代码
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 09:08:02

当我把WakerIntervalPeriod设置为10分钟而不是5分钟后,问题就解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29690438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档