首页 > 网站 > IIS > 正文

asp.net无法获取iis目录的问题解决方法

2024-08-29 03:13:25
字体:
来源:转载
供稿:网友

如果你有一个需要偶尔发送邮件的Asp.Net的网站,可能会有代码长的和下面的很像:

代码如下:
//这是简写,并非实际项目代码
public void Send(string from, string to, string subject, string body)
{
    var msgMail = new MailMessage(from, to, subject, body);
    msgMail.IsBodyHtml = true;
    var server = new SmtpClient("localhost");
    server.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
    server.UseDefaultCredentials = true;
    server.Send(msgMail);
}

可能它曾经工作,但是当你切换到或初步部署到新的Windows 2008 服务器时,你会遇到错误提示信息"Cannot get IIS Pickup Directory!"

现在,我经常称呼自己为世界上最厉害的系统管理员。这不是我研究的方向。我并不非常擅长,但是有时在实际工作中我不得不面对和解决这些问题以获取报酬。

1)  SMTP服务是否安装?

你的Web服务器或许还没有安装SMTP服务,所以进入服务管理中确定SMTP服务在功能列表中。如果不在,就需要你添加上去。

2) SMTP是否已配置?

仅仅确定SMTP服务已经安装是不够的。首先,当你服务器启动时(我曾经遇到些客户端软件安装前可以发送邮件,但是之后就不可以了,他们重启了服务器,而Mail服务没启动,就这么简单),确保你的SMTP服务也跟着自动启动。进入服务,确保SMTP服务在那里,并且已经启动,启动类型也为自动。

 

然后,你应该配置SMTP服务——说句实话,我对此知道的不多,所以我就不详细解释了,但是你需要知道SMTP仍然是IIS6.0的一部分,所以你可以在IIS6.0的管理界面找到它。一个快速突破点,因为它可能不符合了一些接收邮件服务器需要一个完整的合格域名的要求,而你的服务器可能只有一个被严格被限制使用的简单域名,比如像“Server15”之类的,所以在SMTP属性中,Delivery标签下 ,点击添加按钮,给服务器一个真正的完整的满足要求的域名。

3) 防火墙是打开的吗?

你的一些操作有可能与防火墙冲突,所以现在是个好时机去排除SMTP安装故障。你可以通过Telnet本机通过端口25,手动给自己发个简单的邮件。下面一个例子可以照着做。

代码如下:
telnet localhost 25
HELO somehost.com
MAIL FROM: yourname@somedomain.com
RCPT TO: the_to_address@somedomain.com
DATA
Subject: the subject of the mail
Blah blah blah message body


点击回车键,过会进入发件箱 如果你不能连接,或者邮件不能送达,这里还有一些其他问题需要你解决,因为防火墙是不会影响拾取目录的获取。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表