new MailMessage () выбрасывает «Неверный дескриптор» - PullRequest
1 голос
/ 08 марта 2012

Почему этот код:

MailMessage mm = new MailMessage();

Брось это исключение:

System.Security.Cryptography.CryptographicException was caught
Message=The handle is invalid.

Source=mscorlib
StackTrace:
   at System.Security.SecureString.ProtectMemory()
   at System.Security.SecureString.InitializeSecureString(Char* value, Int32 length)
   at System.Security.SecureString..ctor(Char* value, Int32 length)
   at System.Net.UnsafeNclNativeMethods.SecureStringHelper.CreateSecureString(String plainString)
   at System.Net.Configuration.SmtpNetworkElementInternal..ctor(SmtpNetworkElement element)
   at System.Net.Configuration.SmtpSectionInternal..ctor(SmtpSection section)
   at System.Net.Configuration.SmtpSectionInternal.GetSection()
   at System.Net.Mail.SmtpClient.get_MailConfiguration()
   at System.Net.Mail.MailMessage..ctor()
   at csEmail.GetMailMessage(String subject, String htmlbody) in c:\Users\Greg\My Dropbox\Intern Files\mobiledesign\App_Code\Utilities.cs:line 364
InnerException: 

My Web.config

<smtp deliveryMethod="Network" from="correctAddress">
    <network host="smtp.gmail.com" userName="correctAddress" password="correctPassword" enableSsl="true" port="587"/>
</smtp>

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Почему это бросает это?вероятно, потому что MS делает что-то глупое под одеялом.

IIRC, этот код SecureString фактически выполняет вызов взаимодействия до advapi32.dll.

Моя реакция на колено:программное обеспечение, и посмотрите, если это исправить.

Убедитесь, что у вас есть доступ к этой DLL.

0 голосов
/ 08 марта 2012

Я полагаю, что создание экземпляра MailMessage не читается из файла Web.config.SmtpClient читает SMTP, настроенный в web.config.

Можете ли вы показать больше своего кода?Может быть, остальная часть метода GetMailMessage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...