我正在处理一个项目,其中一个需求是重写一个ASP.NET应用程序。旧的ASP.NET应用程序基于.NET Framework 1.1。新的ASP.NET应用程序基于.NET Framework 3.5。ASP.NET - SmtpClient - 无法连接到远程服务器
旧的Web应用程序的功能之一是发送电子邮件的功能。旧代码使用System.Web.Mail.SmtpMail
类,而新的Web应用程序使用System.Net.Mail.SmtpClient
类。
在我们的开发服务器上进行测试时,一切正常。但是,我们有两个测试客户端测试我们的软件,他们都遇到了在新的Web应用程序中发送电子邮件的问题。
具体的例外情况如下:
无法连接到远程服务器---> System.Net.Sockets.SocketException:无连接可以作出,因为目标机器积极地拒绝它
旧的和新的ASP.NET应用程序都在同一台服务器上(Windows Server 2003)。他们都使用相同的Exchange邮件服务器。为什么旧的ASP.NET应用程序可以成功发送电子邮件,但新的不能?
我看了看旧代码,它没有使用任何形式的认证,只是指定了发件人的电子邮件地址,收件人的电子邮件地址,主题,正文和服务器,并发送了邮件。我在新代码中做了同样的事情,唯一的区别是我使用了SmtpClient类。
下面是新的ASP.NET应用程序的代码片段:
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(messageTo);
mail.From = new MailAddress(messageFrom);
mail.Subject = messageSubject;
mail.Body = messageBody;
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Send(mail);
Exchange日志中是否有任何内容显示拒绝连接? – David 2010-07-13 14:43:25
我无法访问它们,我也不认为测试版客户端可以访问它们。再一次,这在我们的结局中运行良好。这是非常基本的功能。 – Chris 2010-07-13 14:45:24
你如何指定服务器?在SmptClient的构造函数中,还是在web.config中?你可以发布一些代码吗? – onof 2010-07-13 14:46:43