Коллеги, добрый день!
Проблема с ExchangeListener, никак не удаётся победить.
Exchange локальный, все виды авторизации включены.
Сервис ExchangeListener развернут, проверки проходят успешно.
При попытке добавить ящик, в интерфейсе вываливается ошибка
"Указан неправильный email или пароль"
Пробовал различным образом вводить логин. И полный email, и domain\username.
В настройке провайдера в блоке Формат логина пробовал и использовать email, и формировать вручную.
Не помогает.
Попытки авторизоваться в exchangeOWA и exchange/ews/exchange.asmx - проходят успешно по базовой авторизации.
В логах на вебе Creatio вижу ошибку, которую отдаёт Exchange. Такое ощущение, что ему прилетает что-то очень неожиданное.
2021-11-01 12:32:04,970 [87] WARN NT AUTHORITY\NETWORK SERVICE IsServerValid - Mailbox maxim.sedov@***.ru didn't pass validation with these credentials, info: Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. Resource temporarily unavailable Resource temporarily unavailable
---> System.Net.WebException: Resource temporarily unavailable Resource temporarily unavailable
---> System.Net.Http.HttpRequestException: Resource temporarily unavailable
---> System.Net.Sockets.SocketException (11): Resource temporarily unavailable
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at System.Net.HttpWebRequest.SendRequest()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.WebRequest.<>c.b__68_2(IAsyncResult iar)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
--- End of inner exception stack trace ---
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest()
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecuteAsync()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ExecuteAsync()
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId folderId, PropertySet propertySet)
at Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId folderId, PropertySet propertySet)
at ExchangeListener.EwsApi.ExchangeListenerService.b__5_0() in /src/ExchangeListener/EwsApi/ExchangeListenerService.cs:line 80
at ListenerBase.Utils.Tracking.TimeElapsedProfiler.MeasureTime(Func`1 action) in /src/ListenerBase/Utils/Tracking/TimeElapsedProfiler.cs:line 23
at ExchangeListener.EwsApi.ExchangeListenerService.ValidateSynchronizationCredentials() in /src/ExchangeListener/EwsApi/ExchangeListenerService.cs:line 78
at ListenerBase.Service.Service.Validate() in /src/ListenerBase/Service/Service.cs:line 224
Куда рыть?
Идеи уже кончились.
Спасибо!
Нравится
Максим, судя по записи из логов, синхронизацию блокирует именно почтовый сервер. Проверьте, пожалуйста, следующее:
1. Используется ли двухфакторная авторизация для входа в почтовый аккаунт?
2. Не блокирует ли почтовый сервер адрес Creatio?
3. Нет ли нюансов по работе с ресурсами в плане SSL? Возможно сервер не может доверять Вашему экземпляру приложения по этой причине.
4. Проверьте доступность к почтовому сервису из микросервиса Exchange listener. Есть несколько вариантов:
- http://cweiske.de/tagebuch/curl-mail.htm (только добавьте аутентификацию)
-v --user "логин:пароль" --login-options AUTH=PLAIN
Полный пример:
curl smtps://адрес сервера smtp -v --user "логин ящика:пароль" --login-options AUTH=PLAIN
- либо второй вариант:
curl адрес почтового сервера.
Максим, добрый день!
Подскажите, пожалуйста, какую версию Creatio Вы используете?
Максим, судя по записи из логов, синхронизацию блокирует именно почтовый сервер. Проверьте, пожалуйста, следующее:
1. Используется ли двухфакторная авторизация для входа в почтовый аккаунт?
2. Не блокирует ли почтовый сервер адрес Creatio?
3. Нет ли нюансов по работе с ресурсами в плане SSL? Возможно сервер не может доверять Вашему экземпляру приложения по этой причине.
4. Проверьте доступность к почтовому сервису из микросервиса Exchange listener. Есть несколько вариантов:
- http://cweiske.de/tagebuch/curl-mail.htm (только добавьте аутентификацию)
-v --user "логин:пароль" --login-options AUTH=PLAIN
Полный пример:
curl smtps://адрес сервера smtp -v --user "логин ящика:пароль" --login-options AUTH=PLAIN
- либо второй вариант:
curl адрес почтового сервера.
Максим Седов,
Приветствую, удалось победить проблему? столкнулся с тем же самым.
Бакалов Павел Вячеславович,
Да, привет! Победили. сервис был развёрнут в кубе. В кубе был неправильно настроен DNS. Сервис ходил не на Exchange, а куда-то еще. Как раз продиагностировали по вышеуказанному мануалу.