C#错误将文件附加为服务但作为程序

时间:2016-09-06 12:53:53

标签: c# .net windows-services email-attachments

我已经开发了一个附加现有文件的程序并且没有任何问题地发送它,当我尝试像Windows服务那样做时,问题出现了。 发送电子邮件的程序代码如下

        try
        {

            Attachment attach = new Attachment(@"C:\Service\Files\Test.zip");
            attach.Name = "Test";                

            string origen = usuario;

            mail = new MailMessage();
            mail.From = new MailAddress(buzon);
            mail.To.Add(usuario);
            mail.Subject = "Testing";
            mail.IsBodyHtml = true;
            mail.Attachments.Add(attach);
            string htmlBody;
            htmlBody = "Test file";
            mail.Body = htmlBody;

            cliente = new SmtpClient("smtp.test.es");
            cliente.DeliveryMethod = SmtpDeliveryMethod.Network;
            cliente.UseDefaultCredentials = false;
            cliente.Credentials = new System.Net.NetworkCredential(buzon, pass);

            cliente.Send(mail);
        }
        catch (Exception ex)
        {              
            Util.Logger.escribir(ex.ToString(), Util.Util.rutaServicioLog);
            throw ex;
        }

请记住,代码在服务和程序中是100%相同,SmtpClient(“smtp.test.es”)显然不是真实的。

错误日志包含以下内容:

  

System.Net.Mail.SmtpException:事务失败。服务器响应为:5.7.1< *******>:客户端主机被拒绝:访问被拒绝      在System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode,String response)      在System.Net.Mail.SmtpTransport.SendMail(MailAddress sender,MailAddressCollection recipients,String deliveryNotify,Boolean allowUnicode,SmtpFailedRecipientException& exception)      在System.Net.Mail.SmtpClient.Send(MailMessage消息)      at *****(String usuario,String clave)   2016/09/06 12:50:18:Proceso erroneo email de ****** con fecha 06/09/2016 10:48:38Track:at ********(String usuario,String clave)      在*******(布尔& continua)来源:***** Excepcion:交易失败。服务器响应为:5.7.1 ******:拒绝客户端主机:拒绝访问

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

该服务运行的用户对您调用的程序中的某些内容没有权限。将其作为服务运行,但将用户设置为管理员。 这将解决您的错误,但存在巨大的安全风险。

我强烈建议您查看here找到的各种内置选项,或根据您的权限需求创建自己的custom user。重要的是,该服务具有对程序运行绝对必要的权限。