【问题标题】:C# smtpclient.send is very slow on development but fast on productionC# smtpclient.send 在开发上非常慢,但在生产上很快
【发布时间】:2013-10-09 23:08:13
【问题描述】:

我们有一些 C# 代码在下订单或更改密码等时向用户发送电子邮件。此代码在生产服务器上运行很快,但在我们的本地桌面上运行时非常慢发展。生产服务器将在 5 秒内发送一封电子邮件,但开发机器需要 5 分钟。开发机器和生产服务器使用我们网络本地的同一个 smtp 服务器。 IIS 或 Exchange 中是否有任何设置可能会在一个环境中导致这样的延迟,但在另一个类似的环境中不会?桌面运行的是 windows 7,网络服务器运行的是 windows webserver 2008,Exchange 服务器是运行在 Microsoft SBS 2011 上的 2010。

【问题讨论】:

  • 他们使用同一个服务器,但是他们在同一个子网上吗?我怀疑开发机器和 SMTP 服务器之间有一个代理,并且协商需要时间。
  • wireshark 数据包嗅探可以揭示一些事情。

标签: c# iis exchange-server smtpclient


【解决方案1】:

您的开发机器上是否安装了 Symantec(或其他防病毒/电子邮件保护)软件?在发送电子邮件时,我们遇到了类似的问题,即 SMTP 流量被停止或终止。生产服务器通常已经为此流量内置了异常,因此没有延迟。

【讨论】:

    【解决方案2】:

    我在通过一些 smtp 客户端发送电子邮件时遇到了类似的问题。虽然这可能不是您正在查看的确切解决方案,但您可以将 sendmail 方法视为“非阻塞任务”(使用 TPL)并让底层线程负责此执行。 同时,您的其余代码可以照常执行。 这样,。即使 sendmail 需要几秒钟,您的代码的其他部分也不必等待它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多