2013-04-17 5 views
3

Я использую amazon ses для отправки электронной почты, и я использую ту же конфигурацию внутри веб-сайта и приложения Windows.
Сайта отправка сообщений электронной почты, как правило, но окна приложение дает мне эту ошибку, а не электронная почта отправлена: enter image description hereНе удалось выполнить вызов SSPI при отправке электронной почты с помощью amazon ses из приложения Windows

обратите внимание, что, когда я изменить Smtp конфигурации в приложении окна что-то вроде Gmail работает нормально, проблема происходит с просто amazon ses и начал происходить только сегодня, до того, как ses отлично работал в приложении Windows.
Также обратите внимание, что как веб-сайт, так и приложение Windows работают локально.

Трассировка стека:

at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 
    at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, 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) 
    at System.Net.TlsStream.CallProcessAuthentication(Object state) 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) 
    at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.Mail.SmtpConnection.Flush() 
    at System.Net.Mail.ReadLinesCommand.Send(SmtpConnection conn) 
    at System.Net.Mail.EHelloCommand.Send(SmtpConnection conn, String domain) 
    at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpClient.GetConnection() 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at Mail.EmailSender.SendMail(MailMessage mail) in e:\Mail\EmailSender.cs:line 175 

InnerException:

{"The message received was unexpected or badly formatted"} 
+0

Не могли бы вы опубликовать внутренние детали исключения и/или полная трассировка стека? – Viccari

+0

У вас есть какие-либо правила брандмауэра, блокирующие исходящие подключения в ящике, где работает ваше приложение Windows? – Viccari

+0

может быть, но я использую ту же конфигурацию в другом выигрышном приложении на той же машине, и все работает нормально. –

ответ

0

Попробуйте проверить SPN (ServicePrincipalName) конфигурации. Эта проблема звучит так, как будто что-то портилось или изменилось где-то в вашей конфигурации. Если учетная запись входа для экземпляра службы изменяется, необходимо, чтобы SPN перерегистрировались в новой учетной записи.

+0

Здесь уже задан подобный вопрос, и было решение. http://stackoverflow.com/questions/15098667/mvcmailer-sendasync-fails-with-amazon-ses – FeliceM

+0

@AmrElGarhy любое развитие с вашей стороны? – FeliceM

0

Взгляните на this SO post, начиная с чтения в сети, многие люди указывают на сертификат, являющийся проблемой, и мне интересно, является ли используемый вами файл проверки подлинности неправильным; они решили его, заменив «.pem-файл на .p12»

Также посмотрите на это MS Hotfix, что очень похоже на вашу проблему.

Кроме того, как FeliceM предполагает, что это может быть учетная запись вопрос: (Из)

" Сеть САШ работает под другой учетной записью, так что вы должны использовать WinHttpCertCfg.exe инструмент, чтобы следующий счет получить доступ к сертификату, который вы должны установить в локальных папках Доверенные компьютера Личные/..

ASPNET Network Service Прошедшие проверку

например

winhttpcertcfg -g -c LOCAL_MACHI NE \ MY -s "CertificateName" -a "ASPNET"

где имя сертификата является дружественным именем вашего сертификата.

Вы можете получить инструмент и информацию по ссылке ниже:

http://msdn.microsoft.com/en-us/library/aa384088%28VS.85%29.aspx#%5Fusing

"

3

У меня была та же проблема, что в конце концов сводились к SecurityProtocol в действие при попытке подключения.

Добавление

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; 

перед клиентом. Отправить разрешено для меня (мы меняем его на Ssl3 в другом месте, чтобы поговорить с другой службой) Было бы хорошо, если бы этот (и ServerCertificateValidationCallback) не был глобальным, если кто-либо из команды .Net читает.

Я не знаю, является ли это «функция» SES или мне только при условии, магия должна работать, но вы можете увидеть некоторые истории здесь: https://forums.aws.amazon.com/thread.jspa?messageID=472516

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

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