2012-03-07 2 views
2

Pourquoi ce code:nouvelle MailMessage() throws 'La poignée est invalide'

MailMessage mm = new MailMessage(); 

Throw cette exception:

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: 

Mon Web.config

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

Que dit votre web.config dans la section smtp? – tedski

Répondre

0

Pourquoi le lance-t-il? probablement parce que MS fait quelque chose dingue sous les couvertures. IIRC, que le code SecureString fait réellement un appel interop à Advapi32.dll.

Mon genou réaction réflexe est de:

  1. Désactivez tout logiciel antivirus, et voir si cela résout le problème.

  2. Assurez-vous que vous avez accès à cette DLL.

+0

vraie réponse 'MS fait quelque chose de goofy sous les couvertures 'Il fonctionne magiquement bien aujourd'hui. – Greg

0

Je crois l'instanciation du MailMessage ne lit pas à partir du Web.config. Le SmtpClient lit le SMTP mis en place dans le web.config.

Pouvez-vous montrer plus de votre code? Peut-être le reste de la méthode GetMailMessage.

Questions connexes