Обаждането до SSPI е неуспешно при изпращане на имейл чрез amazon ses от Windows приложение

Използвам amazon ses за изпращане на имейли и използвам същата конфигурация в уебсайт и приложение за Windows.
Уебсайтът изпраща имейли нормално, но приложението за Windows ми дава тази грешка, а не изпратените имейли:въведете описание на изображението тук

имайте предвид, че когато променя конфигурацията на smtp в приложението за windows на нещо като 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"}

person Amr Elgarhy    schedule 17.04.2013    source източник
comment
Бихте ли публикували подробностите за вътрешното изключение и/или пълното проследяване на стека?   -  person Viccari    schedule 22.04.2013
comment
Имате ли някакви правила на защитната стена, блокиращи изходящите връзки в кутията, където се изпълнява вашето приложение за Windows?   -  person Viccari    schedule 26.04.2013
comment
може да е, но аз използвам същата конфигурация в друго приложение за победа на същата машина и всичко работи добре.   -  person Amr Elgarhy    schedule 27.04.2013
comment
Съжалявам, ако се разминавам малко, но опитвали ли сте да стартирате това приложение от друга машина или от друга мрежа?   -  person Viccari    schedule 27.04.2013
comment
същото приложение не работи сега на други машини, но други приложения със същата smtp конфигурация работят добре дори на същата машина   -  person Amr Elgarhy    schedule 27.04.2013
comment
Решихте ли проблема? Няколко дни не получаваме новини за състоянието на вашия проблем.   -  person FeliceM    schedule 13.05.2013


Отговори (3)


Имах същия проблем, който в крайна сметка се сведе до SecurityProtocol в сила при опит за свързване.

Добавяне

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

преди client.Send го разреши за мен (променяме го на Ssl3 другаде, за да говорим с различна услуга) Би било хубаво, ако това (и ServerCertificateValidationCallback) не беше глобално, ако някой от екипа на .Net чете.

Не знам дали това е „функция“ на SES или аз просто приемам, че магията трябва да работи, но можете да видите малко история тук: https://forums.aws.amazon.com/thread.jspa?messageID=472516

person James Ogden    schedule 25.07.2013

Опитайте да проверите вашата SPN (ServicePrincipalName) конфигурация. Този проблем звучи като нещо повредено или модифицирано някъде във вашата конфигурация. Ако акаунтът за влизане на екземпляр на услуга се промени, SPN трябва да се регистрират отново под новия акаунт.

person FeliceM    schedule 08.05.2013
comment
Тук вече беше зададен подобен въпрос и имаше решение. stackoverflow.com/questions/15098667/ - person FeliceM; 12.05.2013
comment
@AmrElGarhy някакво развитие от ваша страна? - person FeliceM; 14.05.2013

Разгледайте тази публикация в SO, от четене в мрежата много хора сочат, че сертификатът е проблемът и се чудя дали файлът за „валидиране“, който използвате, всъщност е грешен; те го решиха, като замениха ".pem файла с .p12"

Разгледайте и тази MS Hotfix, която звучи много като вашия проблем.

Освен това, както предполага FeliceM, това може да е проблем с акаунта: (Взето от)

"Aspnet работи под различен акаунт, така че трябва да използвате инструмента WinHttpCertCfg.exe, за да разрешите на следния акаунт достъп до сертификата, който трябва да инсталирате в лични/надеждни папки на локалния компютър.

ASPNET мрежова услуга Удостоверени потребители

e.g.

winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "Име на сертификат" -a "ASPNET"

където името на сертификата е приятелското име на вашия сертификат.

Можете да получите инструмента и информацията от връзката по-долу:

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

"

person Paul Zahra    schedule 09.05.2013