2016-09-06 7 views
0

Я разработал программу, которая прикрепляет существующий файл и отправляет его без проблем, проблема возникает, когда я пытаюсь сделать то же самое, что и сервис Windows. Код процедуры отправки электронной почты является следующийC# Ошибка при установке файла как службы, но работающего как программа

 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, ответ строки) на System.Net.Mail. SmtpTransport.SendMail (MailAddress отправитель, получатели MailAddressCollection, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException & исключение) в System.Net.Mail.SmtpClient.Send (MailMessage сообщение) на ***** (String Новичок, String клаве) 2016/09/06 12:50:18: Proceso erroneo email de ****** con fecha 06/09/2016 10: 48: 38Track: at ******** (String usuario, String clave) на ******* (Boolean & continua) Источник: ***** Excepcion: транзакция не удалась. Ответ сервера: 5.7.1 ******: Клиент отказался: доступ запрещен

Заранее за вашу помощь.

+0

Вы уверены, что пользовательское имя + пароль, который вы ему дали, правильно подобраны? вы можете увидеть, как smtp-сервер видит то, что он видит как разницу? – BugFinder

+0

Вы запускаете сервис и программу на одном компьютере? Тот же ip? – BWA

+0

Привет @BugFinder да, пользователь и пароль правильные, в программе он работает красиво – Veelicus

ответ

0

Пользователь, которому работает служба, не имеет прав на что-либо в вашей программе, на которую вы звоните. Запустите его как службу, но установите пользователя для администратора. Это решит вашу ошибку, но имеет огромные риски для безопасности.

Я настоятельно рекомендую обзор различных встроенных в настройках нашли here или создания собственного custom user в зависимости от потребностей разрешения. Важно, чтобы служба имела столько разрешений, сколько абсолютно необходимо для запуска программы.

 Смежные вопросы

  • Нет связанных вопросов^_^