我正在使用"技巧"(这里很好地描述)在测试期间将我的电子邮件存储在应用程序服务器上.
我的配置文件如下所示:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory" from="no-reply@here.com">
<specifiedPickupDirectory pickupDirectoryLocation="E:\EmailStore" />
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
该目录存在且没有权限问题.
这是问题所在.在我导航到服务器上的文件夹之前,不会创建文件.然后突然爆炸所有文件都弹出到目录中.
任何人都知道发生了什么事吗?
我注意到还有另一种选择 - PickupDirectoryFromIis但我不知道何时应该使用SpecifiedPickupDirectory以及什么时候应该使用PickupDirectoryFromIis.
SpecifiedPickupDirectory和之间有什么区别PickupDirectoryFromIis?我什么时候应该使用另一个?这是导致文件没有出现的原因吗?
这是一个从ASP.NET 3.5迁移到ASP.NET 4.0的项目
现在似乎System.Net.Mail.SmtpClient已经实现了IDisposable.更改代码使用以下模式似乎已经解决了问题.
最好的猜测原因是GC没有被调用,文件缓冲区没有被刷新.
using (System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage())
{
using (System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient())
{
// code
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5655 次 |
| 最近记录: |