【问题标题】:Cannot access website from the same server无法从同一服务器访问网站
【发布时间】:2014-01-07 06:40:18
【问题描述】:

我在http://SomeDomain.com 上有一个网站。当我从任何计算机访问该域时,我都可以访问该网站。如果我然后去同一个域,但从托管该网站的服务器,我将无法访问该网站。好像防火墙不会启用连接。

我知道我可以从该服务器中转到http://localhost 以访问该网站。

无论如何问题是我无法从该服务器发送电子邮件我有以下代码可以发送电子邮件:

public static void SendEmail(string toEmailAddress, string subject, string body)
{
        var fromAddress = new MailAddress("sales@domainName.com", "domainName");
        var toAddress = new MailAddress(toEmailAddress);
        string fromPassword = "MY_PASSWORD";

        var smtp = new SmtpClient
        {
            Host = "mail.toglcloud.com",

            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("v040\\sales.domainName", fromPassword)
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body
        })
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
            smtp.Send(message);
        }
}

当我从任何计算机(我已经尝试过 5 种不同的)运行该代码时,它就可以工作了!但是,如果我在服务器(计算机托管网站并包含邮件服务器)上运行该确切代码,则它不起作用。我得到以下异常:

System.Net.Mail.SmtpException:发送邮件失败。 ---> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:连接尝试失败 因为连接方在一段时间后没有正确响应 时间,或建立连接失败,因为连接的主机有 未能响应 206.155.112.15:587 System.Net.Sockets.Socket.DoConnect(端点 endPointSnapshot, SocketAddress 套接字地址)在 System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败, Socket s4, Socket s6, Socket&socket, IPAddress&地址, ConnectSocketState 状态、IAsyncResult asyncResult、Int32 超时、 异常&异常)---内部异常堆栈跟踪结束---

我认为这与我找不到端点 http://SomeDomain.com

的原因相同

【问题讨论】:

  • Mayby 在任何配置文件(我猜是电子邮件程序服务器的配置)中的任何地方都有一行表示允许/阻止本地地址。也许如果你改变它,它会修复......
  • 另外,this answer 可能会有所帮助
  • 我创建了一个控制台应用程序而不是网站,我得到了同样的异常。一旦我让它在控制台应用程序上运行,我就会将该代码放在网站上。
  • 嗯,关键是您的计算机/服务器找不到 SMTP 主机(同一台计算机?!?)。那么你能检查一下 SMTP 服务器是否在 port 587 上列出了吗?
  • 我已经尝试过SmtpDeliveryMethod.PickupDirectoryFromIis,当我尝试死亡时,我得到了一个不同的异常说System.Net.Main.SmtpExeption: Cannot get IIS pickup directory....,尽管我很感激你的帮助:)

标签: c# email smtp exchange-server


【解决方案1】:

其他5台电脑与服务器的区别: 1. 你是哪个用户登录的?用户的权限是什么。 2.防火墙权限(最大的机会,因为邮件服务器完全无法访问) 3. 对于网站 - 是否是 IE 权限(通常在服务器上这可能是个问题)

【讨论】:

  • 我很确定我从未见过用户帐户与 DNS 解析问题有任何关系的情况。另外,考虑到是网站本身无法联系到外部邮件服务器,那么客户端使用的浏览器与它没有任何关系。
【解决方案2】:

对我来说,我在主机文件中添加了一个条目,它运行良好。

【讨论】:

  • 请记住,代码——或者,在这种情况下,配置数据——应该在 markdown 中引用,而不是作为屏幕截图。您可以编辑此答案以将hosts 文件的相关部分作为代码块包含在其中吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2010-09-22
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多