【问题标题】:SmtpClient.Timeout on MonoTouch (iOS), does not seem to have any effect, am I doing it wrong?MonoTouch(iOS)上的SmtpClient.Timeout,似乎没有任何效果,是我做错了吗?
【发布时间】:2012-02-03 15:08:11
【问题描述】:

我正在构建一个“测试”按钮来验证应用中的 SMTP 配置。

如果用户输入了错误的端口号,将 SSL 打开/关闭到错误的状态,或者输入了有效的域名,但没有托管 SMTP 服务器,则应用挂起,等待超时.

基本上找到了一个服务器,但是无法连接到指定的端口。

在这种情况下,此超时时间似乎约为 1 分 15 秒。

我尝试像这样设置超时:

var client = new SmtpClient(hostname, port);
client.Timeout = 15000; // milliseconds

但超时时间仍然在 1 分 15 秒左右。

还有什么需要配置的吗?

请注意,虽然我可以使用“SendAsync”来避免挂起,但在这种情况下我仍然希望使用更低的超时时间。

【问题讨论】:

    标签: ios xamarin.ios smtp timeout


    【解决方案1】:

    这可能与done synchronously 的DNS 解析有关。您可以使用 IP 地址而不是主机名轻松确认这一点,并查看超时是否接近预期的 15 秒。

    如果是这种情况,那么一个可能的替代方案是,我在 iOS 下测试过,可以使用Mono.Dns

    【讨论】:

    • 不,我对此表示怀疑。我确实在我的试验中使用了正确的主机名,这实际上可以解析到正确的服务器。但是,我错误地切换了 SSL 设置以进行测试,这使程序尝试连接到错误端口上的服务器,然后 1:15 的延迟开始发挥作用。如果我输入一个完全不存在的域名,我会很快得到反馈,所以不是这样。服务器确实存在,只是在端口 25 上没有响应。
    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2015-12-05
    • 2021-11-24
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多