gpt4 book ai didi

asp.net - 使用远程浏览器的 ASP.NET 应用程序中的 SmtpException

转载 作者:行者123 更新时间:2023-12-02 10:28:33 24 4
gpt4 key购买 nike

我有一个 ASP.NET 4 应用程序在 Windows Server 2008 计算机上的 IIS 7 下运行。该应用使用 System.Net.Mail 类通过 SMTP 服务器发送电子邮件。我使用端口 587 进行 SSL 连接。当我从服务器内浏览应用程序时,电子邮件发送正常。但是,当我从远程(客户端)计算机浏览到应用程序时,电子邮件发送失败,并出现 SmtpException,其中 StatusCode = GeneralFailure。该消息表明 SMTP 服务器无法连接,并且存在内部 SocketException

服务器正在运行 F-Secure 防病毒系统。我尝试禁用它,但错误仍然存​​在。

电子邮件发送是否有效取决于我访问网络服务器的方式:

  • 如果我使用服务器公开可用的 DNS 名称从远程客户端浏览到 http://myapp.mydomain.com,则会失败。
  • 如果我使用服务器的公共(public) IP 地址以及 IIS 中的 Web 应用程序名称从远程客户端浏览到 http://193.144.xxx.xxx/myapp,也会失败。
  • 如果我从远程客户端浏览到 http://internal-name/myapp,通过 VPN 使用域中服务器的内部名称加上 IIS 中的 Web 应用程序的名称,那么它就可以工作!
  • 如果我从服务器本身的交互式 session 中进行浏览,无论我如何操作(公共(public) DNS 名称、公共(public) IP 地址、内部域名或只是 localhost),它也能正常工作。怎么可能在服务器上浏览时可以发送邮件,而在远程浏览时却不能发送邮件呢?在这两种情况下,都是由同一台服务器发送电子邮件。

如果我从 Visual Studio 中浏览开发计算机上的应用程序,那么一切都会正常工作。

也请参阅:https://serverfault.com/questions/845606/iis-randomly-returning-inet-e-resource-not-found

编辑。服务器有一个在工作中内部使用的私有(private) IP 地址,以及公共(public) DNS 解析到的公共(public) IP 地址。服务器本身没有配置该公网IP地址;相反,它是我们的互联网接入提供商提供的转发服务。 SMTP 服务器是否可能对以下事实感到困惑:连接请求来自声称拥有地址但名称解析为不同地址的客户端?

有什么想法吗?谢谢。

最佳答案

经过大量调查,我们找到了根本问题。我们的互联网接入提供商在将公共(public) IP 地址映射到我们服务器的内部 IP 地址的 NAT 表中发现了配置错误。这导致一些请求被丢弃。他们已经修复了配置,现在一切正常。

感谢所有为此提供帮助的人。

关于asp.net - 使用远程浏览器的 ASP.NET 应用程序中的 SmtpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com