检查远程服务器上是否打开了443端口

时间:2014-08-06 07:06:06

标签: c# https

我有一个连接到远程服务器的应用程序。 当它无法连接时,运行Diagnostics()函数。 诊断中的一点是检查443端口。我用下一个代码检查它:

public static bool Check443Port(string host)
        {
            if (String.IsNullOrEmpty(host))
                return false;

            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
            HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("https://" + host);
            myReq.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
            if (HttpWResp.StatusCode != HttpStatusCode.OK)
            {
                Logger.WriteLine("Connection to 443 failed: " + HttpWResp.StatusDescription);
                return false;
            }
            HttpWResp.Close();

            Logger.WriteLine("Connection to 443 succeeded");
            return true;
        }

通常它工作正常。但是有一个用户发给我这个函数返回FALSE的日志,但443端口是打开的(用户说)。 真的,从我发现的日志中,443端口没有问题,但是当我检查它时,它返回FALSE。

可能是什么问题?可能我需要另一个443端口测试吗?

P.S。错误是"远程服务器返回错误:(400)错误请求。"

0 个答案:

没有答案