使用远程浏览器的 ASP.NET 应用程序中的 SmtpException
SmtpException in ASP.NET application with remote browser
我在 Windows Server 2008 机器上的 IIS 7 下有一个 ASP.NET 4 应用程序 运行。该应用程序使用 System.Net.Mail
类 通过 SMTP 服务器发送电子邮件。我正在使用端口 587 进行 SSL 连接。当我从服务器内浏览应用程序时,电子邮件发送正常。但是,当我从远程(客户端)计算机浏览到应用程序时,电子邮件发送失败,SmtpException
具有 StatusCode = GeneralFailure
。消息说无法连接 SMTP 服务器,并且有一个内部 SocketException
.
服务器是运行 F-Secure防病毒系统。我尝试禁用它,但错误仍然存在。
电子邮件发送是否有效取决于我访问网络服务器的方式:
- 如果我从远程客户端浏览到 http://myapp.mydomain.com,使用服务器的 public 唯一可用的 DNS 名称,则它会失败。
- 如果我从远程客户端浏览到 http://193.144.xxx.xxx/myapp,使用服务器的 public IP 地址加上 IIS 中的 Web 应用程序的名称,那么它也会失败。
- 如果我从远程客户端浏览 http://internal-name/myapp,使用域中服务器的内部名称加上 IIS 中通过 VPN 的 Web 应用程序的名称,那么它就可以工作!
- 如果我从服务器本身的交互式会话浏览,无论我如何操作(public DNS 名称、public IP 地址、内部域名或
localhost
), 那么它也有效。
从服务器浏览时邮件发送如何工作,而在远程浏览时却不工作?在这两种情况下,都是同一台服务器发送电子邮件。
如果我从 Visual Studio 中浏览我的开发机器上的应用程序,那么它一切正常。
也请看这个:https://serverfault.com/questions/845606/iis-randomly-returning-inet-e-resource-not-found
编辑。服务器有一个在工作中内部使用的私有 IP 地址,以及 public DNS 解析到的 public IP 地址。此 public IP 地址未在服务器本身上配置;相反,它是由我们的 Internet 访问提供商执行的转发服务。 SMTP 服务器是否可能对以下事实感到困惑:连接请求来自声称拥有地址但随后具有解析为不同地址的名称?
有什么想法吗?谢谢。
经过大量调查,我们找到了根本问题。我们的 Internet 访问提供商在将 public IP 地址映射到我们服务器的内部 IP 地址的 NAT 表中发现配置错误。这导致一些请求被丢弃。他们已经修复了配置,现在一切正常。
感谢所有为此提供帮助的人。
我在 Windows Server 2008 机器上的 IIS 7 下有一个 ASP.NET 4 应用程序 运行。该应用程序使用 System.Net.Mail
类 通过 SMTP 服务器发送电子邮件。我正在使用端口 587 进行 SSL 连接。当我从服务器内浏览应用程序时,电子邮件发送正常。但是,当我从远程(客户端)计算机浏览到应用程序时,电子邮件发送失败,SmtpException
具有 StatusCode = GeneralFailure
。消息说无法连接 SMTP 服务器,并且有一个内部 SocketException
.
服务器是运行 F-Secure防病毒系统。我尝试禁用它,但错误仍然存在。
电子邮件发送是否有效取决于我访问网络服务器的方式:
- 如果我从远程客户端浏览到 http://myapp.mydomain.com,使用服务器的 public 唯一可用的 DNS 名称,则它会失败。
- 如果我从远程客户端浏览到 http://193.144.xxx.xxx/myapp,使用服务器的 public IP 地址加上 IIS 中的 Web 应用程序的名称,那么它也会失败。
- 如果我从远程客户端浏览 http://internal-name/myapp,使用域中服务器的内部名称加上 IIS 中通过 VPN 的 Web 应用程序的名称,那么它就可以工作!
- 如果我从服务器本身的交互式会话浏览,无论我如何操作(public DNS 名称、public IP 地址、内部域名或
localhost
), 那么它也有效。 从服务器浏览时邮件发送如何工作,而在远程浏览时却不工作?在这两种情况下,都是同一台服务器发送电子邮件。
如果我从 Visual Studio 中浏览我的开发机器上的应用程序,那么它一切正常。
也请看这个:https://serverfault.com/questions/845606/iis-randomly-returning-inet-e-resource-not-found
编辑。服务器有一个在工作中内部使用的私有 IP 地址,以及 public DNS 解析到的 public IP 地址。此 public IP 地址未在服务器本身上配置;相反,它是由我们的 Internet 访问提供商执行的转发服务。 SMTP 服务器是否可能对以下事实感到困惑:连接请求来自声称拥有地址但随后具有解析为不同地址的名称?
有什么想法吗?谢谢。
经过大量调查,我们找到了根本问题。我们的 Internet 访问提供商在将 public IP 地址映射到我们服务器的内部 IP 地址的 NAT 表中发现配置错误。这导致一些请求被丢弃。他们已经修复了配置,现在一切正常。
感谢所有为此提供帮助的人。