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 の呼び出しで次のメッセージが表示されてタイムアウトします。接続: 接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。

4

1 に答える 1

0

コンソール アプリとサービスから同時に実行しようとしましたか? また、いくつかの統計を収集する一連のリクエストを作成して、両方のアプローチをテストできますか?

ポイントは、さまざまなネットワークの問題など、さまざまな OS ユーザー以外のさまざまな要因から問題を切り分けるのに役立つということです。

それを行った後、何か新しいことや興味深いことを見つけることができる場合は、新しい詳細を自由に提供してください.

于 2015-12-20T23:09:21.820 に答える