Question

Exchange listeners 8.0.6

Hi community

on my local dev environment I've configured the exchange listeners, but when I run the diagnostic tools I receive the two following errors 

  1. SERVICE AVAILABILTY VERIFICATION: Creatio make a rest call to the uri "http://dexchlist:10000/api/listeners/exists" that returns the text exists, but creatio expect a json response
  2. CREATIO AVAILABILITY VERIFICATION: Creatio try to call the uri http://dexchlist:10000/api/availability/app" with data https://democreatio.xxx.com/aic806/0/ServiceModel/ExchangeListenerServi… and the end point return null

Can you help me ?

Like 1

Like

7 comments

hi Stefano Bassoli,



Have you configured the system setting path for the exchange listener URI?



BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Yes, I did

Stefano Bassoli,

an update, I updated the EmailListener to version 1.0.10 (bpmonline/emaillistener Tags | Docker Hub.)  and the second error is solved.

 

The first issue is related to a bug on the  method ExchangeListenerStatusResponse it uses the value ExchangeListenerActions.Exists, but the correct  value is ExchangeListenerActions.Status for the EmailListener 1.0.10

private ExchangeListenerStatusResponse GetExchangeListenerStatusRequestResult() {

            string serviceUri = ExchangeListenerActions.GetActionUrl(UserConnection, ExchangeListenerActions.Exists);

            WebRequest request = _requestFactory.Create(serviceUri);

            request.ContentType = "application/json; charset=utf-8";

            request.Timeout = 5 * 60 * 1000;

            WebResponse webResponse = request.GetResponse();

            using (Stream dataStream = webResponse.GetResponseStream()) {

                StreamReader reader = new StreamReader(dataStream);

                return Json.Deserialize<ExchangeListenerStatusResponse>(reader.ReadToEnd());

            }

        }

 

 

Stefano,

 

it seems like the service is not available for your site.

As for now, it is quite difficult to find the root cause as there might be a lot of different reasons for this.

We recommend checking the availability of the service from the server where you are using Creatio and backwards as well. You are frre to use some simple commend such as ping or curl.

 

Here are some examples:

 

http://microservice_address/api/listeners/status - just put it in the browser as link;

 

ping [listener_address]

telnet [listener_address] [port] (Windows)

 

Then, you should enter the container where Listener is set and run the following commands:



curl smtps://smtp.site.com:465 -v --user "login:pass" --login-options AUTH=PLAIN

 

Also, you can try running these commands:



curl --insecure --trace-ascii --ntlm -u [mailbox login] [mailserver_address]/ews/exchange.asmx -v



"curl [mailserver_name]"- here you can put either the mail server or the application server.



Additionally, you need to check the application server availability from the listener side:



curl http://creatio_site/0/ServiceModel/ExchangeListenerService.svc/ProcessFullEmail

curl creatio_site/ServiceModel/ExchangeListenerService.svc/

 

Regards,

Gleb.

Gleb,

the listener works perfectly.

The ExchangeListenerStatusResponse.GetExchangeListenerStatusRequestResult() function calls the end-point http://microservice_address/api/listeners/exists, not http://microservice_address/api/listeners/status.

 

Stefano Bassoli,



Thanks for sharing the details!

Hi team, with the newest version of the exhange listener 1.0.11 the calendar is not synching, email synchronization works perfectly, calendar does not synch correctly and produces the following error log:

 

2023-02-27 12:08:42,439 [144] ERROR NT AUTHORITY\SYSTEM LogError - [mmp9T6J1TEi6FTi60xYm5Q.import] [ExchangeCalendarClient] Invoke service action is failed for [Calendar settings =&gt; "a2b11d40-2201-4304-a3d8-9be0994d6678" "owa.errevi.com" "Login"].
Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. Connessione sottostante chiusa: Una connessione che doveva restare attiva è stata chiusa dal server in modo imprevisto.. ---&gt; System.Net.WebException: Connessione sottostante chiusa: Una connessione che doveva restare attiva è stata chiusa dal server in modo imprevisto..
   in System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   in System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.&lt;Microsoft-Exchange-WebServices-Data-IEwsHttpWebRequest-GetResponse&gt;d__4.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;GetEwsHttpWebResponse&gt;d__45.MoveNext()
   --- Fine della traccia dello stack dell'eccezione interna ---
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;GetEwsHttpWebResponse&gt;d__45.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;ValidateAndEmitRequest&gt;d__43.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.&lt;InternalExecuteAsync&gt;d__1.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.&lt;ExecuteAsync&gt;d__6.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.ExchangeService.&lt;BindToFolder&gt;d__27.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.ExchangeService.&lt;BindToFolder&gt;d__28`1.MoveNext()

 

Show all comments