C# 无法获取IIS拾取目录(从Windows服务)

C# 无法获取IIS拾取目录(从Windows服务),c#,asp.net,iis,c#-3.0,iis-6,C#,Asp.net,Iis,C# 3.0,Iis 6,我从windows服务发送电子邮件时遇到上述错误。非常感谢你的建议 SmtpClient smtpClient = new SmtpClient(); MailMessage mailMsg = this.ComposeMailMessage(); smtpClient.Send(mailMsg); 配置 也许我的答案不是您要搜索的答案,但请尝试以下方法(避免使用IIS): 您可能需要手动设置SmtpClient PickupDirectory 卢卡斯·波科尼的回答中有一个例子说明了如何做到这

我从windows服务发送电子邮件时遇到上述错误。非常感谢你的建议

SmtpClient smtpClient = new SmtpClient();
MailMessage mailMsg = this.ComposeMailMessage();
smtpClient.Send(mailMsg);
配置


也许我的答案不是您要搜索的答案,但请尝试以下方法(避免使用IIS):


您可能需要手动设置SmtpClient PickupDirectory

卢卡斯·波科尼的回答中有一个例子说明了如何做到这一点:


尝试将以下行添加到程序中。此行需要在桌面上运行IIS管理和SMTP服务

smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
所以会变成这样

SmtpClient smtpClient = new SmtpClient();
MailMessage mailMsg = this.ComposeMailMessage();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
smtpClient.Send(mailMsg);

很可能,运行您网站的进程无法访问存储分拣目录名称的IIS元数据库,这是导致您出现错误的一般原因。感谢您的回复,但windows服务中的代码由其他方维护,并且在其他环境中运行良好。事实上,我想使用“网络”作为传递方法,因为SMTP服务器是独立的服务器。
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
SmtpClient smtpClient = new SmtpClient();
MailMessage mailMsg = this.ComposeMailMessage();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
smtpClient.Send(mailMsg);