首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# HttpWebResponse超时不起作用

问C# HttpWebResponse超时不起作用
EN

Stack Overflow用户
提问于 2011-06-09 23:06:03
回答 2查看 2.5K关注 0票数 1

我有功能来检查网站是否可用。

代码语言:javascript
复制
    public bool ConnectionAvailable(string strServer)
    {
        try
        {
            HttpWebRequest reqFP = (HttpWebRequest)HttpWebRequest.Create(strServer);
            reqFP.Timeout = 10000;
            HttpWebResponse rspFP = (HttpWebResponse)reqFP.GetResponse();

            if (HttpStatusCode.OK == rspFP.StatusCode)
            {
                // HTTP = 200 - Internet connection available, server online
                rspFP.Close();
                return true;
            }
            else
            {
                // Other status - Server or connection not available
                rspFP.Close();
                return false;
            }
        }
        catch (WebException)
        {
            // Exception - connection not available
            return false;
        }
    }

这不是我的代码。我在网上找到的。

问题是当一些网站不可用时。我想等待x毫秒(在reqFP.Timeout中设置),那么函数应该返回false。但每次我都要等待大约20秒(即使我在“超时”中设置了10秒)。

你知道哪里出了问题吗?

附言:对于语言错误,我很抱歉。

EN

回答 2

Stack Overflow用户

发布于 2011-06-09 23:11:56

来自MSDN article

域名系统查询可能需要15秒才能返回或超时。如果您的请求包含需要解析的主机名,并且您将Timeout设置为小于15秒的值,则可能需要15秒或更长时间才会抛出WebException来指示您的请求超时。

如果有可能是这样的话?尝试使用合理的代码,但使用IP地址而不是主机名。另外,当你在等待20秒后得到false,你确定这是因为超时,而不是因为服务器返回了"200“以外的东西吗?

票数 3
EN

Stack Overflow用户

发布于 2011-06-10 00:22:26

尝试此属性: ReadWriteTimeout

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

https://stackoverflow.com/questions/6295017

复制
相关文章

相似问题

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