繁体   English   中英

在本地系统帐户下作为服务运行时,为什么不能验证我的SMTP服务器域名和端口?

[英]Why doesn't validating my SMTP server domain name and port work when running as a service under the local system account?

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

 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调用中显示以下消息超时。连接:连接尝试失败,因为一段时间后连接方未正确响应,或者连接建立失败,因为连接的主机未能响应。

您是否尝试过同时通过控制台应用程序与服务运行它? 另外,您是否可以通过发出一系列收集一些统计信息的请求来测试这两种方法?

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

如果您可以找到新的或引人入胜的内容,那么可以随意提供新的细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM