.NET发送电子邮件的最佳方法(System.Net.Mail有问题)
|
这似乎很简单。我需要从一些ASP.NET应用程序发送电子邮件。我需要做到这一点,没有奇怪的错误,没有CPU利用率通过屋顶。我不是在说大量的电子邮件,只是偶尔的电子邮件。 System.Net.Mail看起来很可怕。 SmtpClient不会发出Quit命令(这可能是因为Microsoft(R)对以下规范不感兴趣),因此连接将保持打开状态。因此,如果有人尝试在该连接终止之前发送电子邮件,则可以从SMTP服务器收到有关打开的连接数太多的错误信息。这是Microsoft(R)完全不感兴趣的错误。看这里: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=146711 另外,如果你环顾一些建议使用这个代码来解决这个问题: smtpClient.ServicePoint.MaxIdleTime = 1; smtpClient.ServicePoint.ConnectionLimit = 1; 好的,是的,“解决”连接被打开的问题。但是,如果您愿意,可以在服务器上尝试这样做,导致进程(在这种情况下为w3wp.exe)正在运行的CPU跳转并保持100%,直到应用程序池被回收为止。无论什么原因,运行mscorwks.dll!的线程是CreateApplicationContext的罪魁祸首。 这具有非常好的副作用,如果您运行在持续100%CPU使用率的Web主机上,您将使您的应用程序池被禁用。所以这不像一些建议那么微不足道。 所以我的问题是怎么办?我需要做的是如此简单;然而,让这些“连接打开太多”的错误是不可接受的,100%的CPU使用率也是不可接受的。我不想购买第三方组件,而不是因为我很便宜,但是我购买了足够的组件和MSDN订阅,似乎很疯狂,为了简单的SMTP功能,需要支出$ 100- $ 300。 我看到设置MaxIdleTime更高可以帮助,但我怀疑。我不想让我的应用程序池被禁用,因为Microsoft不想遵循SMTP规范。 编辑:我查看了quiksoft.com组件,但它不支持SMTP身份验证,费用为$ 500。必须要解决这个问题。 解决方法我遇到与所描述的设置相同的CPU利用率问题。我最终用微软打开一张机票来确定问题的原因。 CPU利用率问题在于ServicePoint类。在ServicePoint类内部,有一个运行每个(MaxIdleTime / 2)毫秒的计时器。看到问题?通过将MaxIdleTime值更改为2,CPU利用率将下降到正常水平。(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 用于制作直方图的库javascript
- asp.net – 错误:“无法读取配置部分’system.webServer /
- asp.net-mvc – 为什么在MVC中传递实体不是一个好主意?
- asp.net-mvc – 检测到潜在的危险Request.Form值
- asp.net – 是否可以更改web.config而不会终止所有用户会话
- asp.net-mvc – 接受逗号和点作为小数分隔符[重复]
- asp.net-core – CoreCLR中的哈希算法
- 用于XmlHttpRequest的WebAPI的CORS
- asp.net – 使用NLog记录当前页面的URL
- Asp.Net:在iis中调试网站
- asp.net-mvc – ASP.NET MVC3 – 3层设计 – 事务
- asp.net-mvc – 当参数为Model时,ASP.NET MVC发布
- Plone和Asp.Net集成
- asp.net-mvc – 在我正在运行的Visual Studio 20
- ASP.NET本地化与单数和复数
- asp.net-mvc – VaryByParam =“*”是否也读取了
- asp.net-mvc – 使用jQuery.post将多个参数发布到
- asp.net-core – 为什么我的JWT承载认证在令牌表
- asp.net-mvc – MVC打开pdf文件
- asp.net – Restful MVC Web Api继承
