管理者権限で実行されているコンソールアプリケーションを介してこのコードブロックを実行すると、正常に機能します。
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の呼び出しで次のメッセージが表示されてタイムアウトします。接続:接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。
コンソールアプリとサービスから同時に実行してみましたか?また、いくつかの統計を収集するために一連のリクエストを行うことで、両方のアプローチをテストできますか?
重要なのは、さまざまなネットワークの問題など、さまざまなOSユーザー以外のさまざまな要因から問題を切り分けるのに役立つ可能性があるということです。
それを行った後、何か新しいことや興味をそそる何かを見つけることができるなら、遠慮なく新しい詳細を与えてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加