对SSPI的调用失败,请参阅内部异常。 ---> System.ComponentModel.Win32Exception:无法解密指定的数据

时间:2015-01-27 19:22:49

标签: c# asp.net .net mandrill

一旦我使用mandrill smtp服务器而不是 smtp.gmail.com ,系统会在第一次尝试时(随机)发送一些电子邮件并在第二次尝试时成功发送。 我有一些类似的帖子,但没有解决我的问题。

这是异常跟踪跟踪(从数据库日志复制,请原谅我的跟踪格式错误)

  

System.Security.Authentication.AuthenticationException:对SSPI的调用失败,请参阅内部异常。 --->   System.ComponentModel.Win32Exception:指定的数据不可能   解密---内部异常堆栈跟踪结束--- at   System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken   消息,AsyncProtocolRequest asyncRequest,异常异常)at   System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken   消息,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32   readBytes,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,   AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken   消息,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32   readBytes,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,   AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken   消息,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.ProcessReceivedBlob(Byte []缓冲区,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32   readBytes,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,   AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken   消息,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32   count,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,   Byte [] buffer,AsyncProtocolRequest asyncRequest)at   System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult   lazyResult)在System.Net.TlsStream.CallProcessAuthentication(Object   国家)   System.Threading.ExecutionContext.RunInternal(执行上下文   executionContext,ContextCallback回调,对象状态,布尔值   preserveSyncCtx)at   System.Threading.ExecutionContext.Run(执行上下文   executionContext,ContextCallback回调,对象状态,布尔值   preserveSyncCtx)at   System.Threading.ExecutionContext.Run(执行上下文   executionContext,ContextCallback回调,对象状态)at   System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)at   System.Net.TlsStream.Write(Byte []缓冲区,Int32偏移量,Int32大小)at   System.Net.PooledStream.Write(Byte []缓冲区,Int32偏移量,Int32大小)   在System.Net.Mail.SmtpConnection.Flush()at   System.Net.Mail.ReadLinesCommand.Send(SmtpConnection conn)at   System.Net.Mail.EHelloCommand.Send(SmtpConnection conn,String domain)   在System.Net.Mail.SmtpConnection.GetConnection(ServicePoint   servicePoint)at   System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)   在System.Net.Mail.SmtpClient.GetConnection()处   System.Net.Mail.SmtpClient.Send(MailMessage消息)at   Nop.Services.Messages.EmailSender.SendEmail(EmailAccount emailAccount,   String subject,String body,MailAddress from,MailAddress to,   IEnumerable 1 bcc, IEnumerable 1 cc,String attachmentFilePath,String   attachmentFileName)at   Nop.Services.Messages.EmailSender.SendEmail(EmailAccount emailAccount,   String subject,String body,String fromAddress,String fromName,   字符串toAddress,字符串toName,IEnumerable 1 bcc, IEnumerable 1 cc,   String attachmentFilePath,String attachmentFileName)at   Nop.Services.Messages.QueuedMessagesSendTask.Execute()

以下是用于发送电子邮件的代码块

 using (var smtpClient = new SmtpClient())
  {

            smtpClient.UseDefaultCredentials = emailAccount.UseDefaultCredentials;
            smtpClient.Host = emailAccount.Host;
            smtpClient.Port = emailAccount.Port;
            smtpClient.EnableSsl = emailAccount.EnableSsl;
            if (emailAccount.UseDefaultCredentials)
                smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
            else
                smtpClient.Credentials = new NetworkCredential(emailAccount.Username, emailAccount.Password);
            smtpClient.Send(message);
   }

0 个答案:

没有答案