首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从windows服务调用aspx页-问题

从windows服务调用aspx页-问题
EN

Stack Overflow用户
提问于 2009-02-25 07:43:13
回答 5查看 2.3K关注 0票数 0

我有一个windows服务,它会在特定的时间间隔后调用页面。该页面依次创建一些报告。问题是,服务在2-3次调用后停止执行任何操作。正如在中一样,它调用页面2-3次,然后不做任何工作,尽管它显示服务正在运行……我在服务中使用计时器……有人能帮我解决这个问题吗?谢谢

代码:(其中t1是我的计时器)

代码语言:javascript
复制
protected override void OnStart(string[] args)
    {
            GetRecords();
            t1.Elapsed += new ElapsedEventHandler(OnElapsedTime);

            t1.Interval = //SomeTimeInterval
            t1.Enabled = true;
            t1.Start();

    }

    private void OnElapsedTime(object source, ElapsedEventArgs e)
    {
        try
        {
            GetRecords();
        }
        catch (Exception ex)
        {
            EventLog.WriteEntry(ex.Message);
        }

    }

    public void GetRecords()
    {


        try
        {
            string ConnectionString = //Connection string from web.config
            WebRequest Request = HttpWebRequest.Create(ConnectionString);
            Request.Timeout = 100000000;
            HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();


        }
        catch (Exception ex)
        {
        }
    }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-25 07:51:38

我认为你遗漏了一些关于处置你的对象的东西,比如StreamReader,WebRequest等等。在使用昂贵的对象之后,您应该将它们处理掉。

票数 0
EN

Stack Overflow用户

发布于 2009-02-25 07:47:37

那么,代码是什么样子的呢?WebClient是查询页面的最简单方法:

代码语言:javascript
复制
    string result;
    using (WebClient client = new WebClient()) {
        result = client.DownloadString(address);
    }
    // do something with `result`

如果计时器代码停止,它也可能会出问题。

票数 1
EN

Stack Overflow用户

发布于 2009-08-26 07:21:29

HttpWebRequest可能会限制对特定页面或服务器的并发HTTP请求的数量,这通常是适当的HTTP客户端实践。

您没有正确处理对象的事实很可能意味着您正在维护2到3个到特定页面的连接,每个连接都具有较大的超时值,并且HttpWebRequest会排队或忽略您的请求,直到前几个请求完成(由于客户端或服务器超时,在本例中最有可能是服务器)。

添加一个'finally‘子句,正确地处理你的对象!

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

https://stackoverflow.com/questions/585064

复制
相关文章

相似问题

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