0

如果我通过以管理员权限运行的控制台应用程序运行此代码块,它就可以正常工作:

 public static bool ValidSMTP(string hostName, int port)
    {
        bool valid = false;
        TcpClient smtpTest = new TcpClient();
        smtpTest.Connect(hostName, port);
        if (smtpTest.Connected)
        {
            NetworkStream ns = smtpTest.GetStream();
            StreamReader sr = new StreamReader(ns);
            if (sr.ReadLine().Contains("220"))
            {
                valid = true;
            }
            smtpTest.Close();
        }
        return valid;
    }

但是,当我尝试从位于本地系统帐户下的 C:\Code:\ServiceTesting\bin\ServiceHost.exe 的服务中运行它时,它无法验证服务器并在调用 smtpTest 时出现以下消息超时。 Connect:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

4

1 回答 1

0

您是否尝试过同时从控制台应用程序和服务运行它?此外,您能否通过发出一系列请求来收集一些统计数据来测试这两种方法?

关键是它可以帮助将问题与不同的操作系统用户(如各种网络问题等)之外的不同因素隔离开来。

如果您能找到新的或有趣的东西,请随时提供新的细节。

于 2015-12-20T23:09:21.820 回答