2016-11-17 4 views
1

Я пытаюсь отправить электронную почту из своего приложения mvc. Ниже приводится часть кода я использую:SmtpException: не удается получить каталог IIS pickup

SmtpClient smtpClient = new SmtpClient(); 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 
smtpClient.UseDefaultCredentials = true; 
smtpClient.Send(message); 

Приведенный выше код дает ошибку:

Cannot get IIS pickup directory SmtpException.

Но если я запускаю мой Visual Studio в качестве администратора, сообщения отправляются успешно.

Если я правильно понял, проблема связана с разрешениями доступа, но я просто не могу понять, что. Если релевантно, приложение является интрасети с проверкой подлинности Windows.

+0

Чем дальше, тем больше причины, по которым вы всегда будете запускать Visual Studio в качестве администратора. Одной из причин является отладка веб-сайтов ASP.NET и использование IIS. Это стало одной из первых вещей, которые я уверен в новой машине разработки. Список функций/действий, требующих прав администратора, см. На этой странице: https://msdn.microsoft.com/en-us/library/jj662724.aspx –

ответ

1

настройки каталога раскладки вручную попробовать:

// C#

client.PickupDirectoryLocation = ...; 

Или установить это в Web.config ASP.NET вместо:

<configuration> 
    <system.net> 
     <mailSettings> 
      <smtp deliveryMethod="SpecifiedPickupDirectory"> 
       <specifiedPickupDirectory 
        pickupDirectoryLocation="..." /> 
       <network defaultCredentials="false" /> 
      </smtp> 
     </mailSettings> 
    </system.net> 
</configuration> 
+0

Это сработало :-). Большое спасибо – ShyProgrammer

+0

Из-за любопытства, почему бы мне не настроить ручной каталог для администратора. Я имею в виду, почему iis не может получить каталог пикапов для пользователей, которые не являются администраторами. – ShyProgrammer

+0

Извините, если это хромает. Первое приложение, новое для всего этого. – ShyProgrammer

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