管理者権限で実行しているコンソール アプリケーションからこのコード ブロックを実行すると、問題なく動作します。
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 の呼び出しで次のメッセージが表示されてタイムアウトします。接続: 接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。