我已经在C#中创建了Windows服务,但是SMTP电子邮件部分未按预期方式发送电子邮件。该服务连接到我们的数据库,进行拖网并带回要通过电子邮件发送的数据。该电子邮件是使用SmtpClient设置的。
该代码可以在不在服务范围内的测试平台上正常运行。凭据和SMTP客户端可与其他Web应用程序一起使用
C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> installutil.exe C:\ Sites \ ibas-email-service \ ibasEmailService.exe Microsoft(R).NET 框架安装实用程序4.7.3062.0版版权所有(C) 微软公司。版权所有。运行交易 安装。
开始安装的安装阶段。见内容 C:\ Sites \ ibas-email-service \ ibasEmailService.exe的日志文件 大会的进度。该文件位于 C:\ Sites \ ibas-email-service \ ibasEmailService.InstallLog。正在安装 程序集'C:\ Sites \ ibas-email-service \ ibasEmailService.exe'。受影响的 参数是:logtoconsole =组装路径= C:\ Sites \ ibas-email-service \ ibasEmailService.exe日志文件= C:\ Sites \ ibas-email-service \ ibasEmailService.InstallLog安装 服务IbasEmailService ...服务IbasEmailService已经 成功安装。在中创建EventLog源IbasEmailService 日志应用程序...
安装阶段成功完成,而提交阶段为 开始。请参阅日志文件的内容,以了解 C:\ Sites \ ibas-email-service \ ibasEmailService.exe程序集的进度。 该文件位于 C:\ Sites \ ibas-email-service \ ibasEmailService.InstallLog。承诺 程序集'C:\ Sites \ ibas-email-service \ ibasEmailService.exe'。受影响的 参数是:logtoconsole =组装路径= C:\ Sites \ ibas-email-service \ ibasEmailService.exe日志文件= C:\ Sites \ ibas-email-service \ ibasEmailService.InstallLog
提交阶段成功完成。
交易安装已完成。
这是基本的SMTP代码(破折的凭据)
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add(new MailAddress(to));
mailMsg.From = new MailAddress(from, "MyApp");
mailMsg.Subject = subject;
mailMsg.Body = message;
mailMsg.IsBodyHtml = true;
SmtpClient smtpClient = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));
smtpClient.UseDefaultCredentials = false;
NetworkCredential
credentials = new NetworkCredential("-------", "-----");
// note credentials are correct in code
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
该服务最初是使用本地系统帐户安装的,这是服务的默认设置。
该服务运行,访问sql server db,获取数据,然后失败以发送电子邮件。
我知道程序可以正常工作,因为我将所有代码都放入了测试平台Web应用程序并收到了回信。 这证明了代码和凭据有效,从而使我的服务或SMTP服务都出现了权限问题。
我尝试使用运行服务: 本地系统帐户 本地服务帐户 网络服务帐户 wd-admin(这是服务器的管理员帐户)-在安装程序中创建了用户名/密码后:
this.serviceProcessInstaller1.Password = "*****************";
this.serviceProcessInstaller1.Username = "wd-admin";
,然后确保使用wd-admin启动服务。
所有这些衡量指标均无法正常运行,该服务无法访问SMTP服务。 事件查看器没有显示任何登录错误,我的代码也没有报告添加的Try / catch / throw结构中的任何错误。
问题:
这是Azure措施吗? SMTP服务是非常基本的允许匿名访问的工具(其思想是在我们正确运行该服务后将其锁定)。
我已阅读stackoverflow,其中域用户应该能够允许访问,因为本地服务和系统帐户不允许访问网络服务。 如何告诉SMTP允许我的用户从其他服务访问?
不生成任何错误,并且除了“服务已启动/已停止”消息之外,Application Event Viewer均未显示任何错误或无法连接消息。
能收到任何帮助或指导。