如果我通过以管理员权限运行的控制台应用程序运行此代码块,它就可以正常工作:
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:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。