Problem solve, 2 sites were configured with TargetFramework 4.5. This was the source of the problem. When configuring TargetFramework 4.8, no communication problem.
Error while using cognitiveservices.azure.com
Bernard BORSU
5
Reputation points
We are using cognitive services on several web sites. All these web sites call our same function AnalyzeText :
Public Function AnalyzeText(cTexte As String, Optional cBlockListName As String = "") As Integer
Dim Reponse As Integer = 0
Try
Dim oClient As New ContentSafetyClient(New Uri(CONTENTSAFETY_ENDPOINT), New AzureKeyCredential(CONTENTSAFETY_KEY)),
oRequest As AnalyzeTextOptions = New AnalyzeTextOptions(cTexte.ToLower)
If cBlockListName <> "" Then
oRequest.BlocklistNames.Add(cBlockListName)
End If
Dim oResponse As Response(Of AnalyzeTextResult) = Nothing
Try
oResponse = oClient.AnalyzeText(oRequest)
Catch ex As RequestFailedException
AnalyseErreurEnaos(-1, "Analyze text failed." & vbCrLf & "Status code:" & ex.Status & ", Error code: " & ex.ErrorCode & ", Error message:" & ex.ErrorCode)
End Try
For Each item As TextCategoriesAnalysis In oResponse.Value.CategoriesAnalysis
If item.Severity > 2 Then
Reponse = item.Severity
Exit For
End If
Next
Catch ex As AggregateException
EMailV2($"{HttpContext.Current.Request.Url.Host} - Erreur Content Safety API Microsoft",
$"<p>Une erreur ""{ex.TargetSite}"" est survenue durant l'appel à l'API Content Safety Studio de Microsoft.</p><p>{ex.Message}</p><p><pre>{ex.InnerException}</pre></p><p>HResult : {ex.HResult }</p><p><pre>{ex.StackTrace}</pre></p>")
Catch ex As Exception
EMailV2($"{HttpContext.Current.Request.Url.Host} - Erreur Content Safety API Microsoft - {TypeName(ex)}",
$"<p>Une erreur est survenue durant l'appel à l'API Content Safety Studio de Microsoft.</p><p>{ex.Message}</p><p><pre>{ex.InnerException}</pre></p><p>HResult : {ex.HResult }</p><p><pre>{ex.StackTrace}</pre></p>")
End Try
Return Reponse
```End Function
On some web sites, no problem, everything is fine. On other web sites, we always receive the same error :
Retry failed after 4 tries. Retry settings can be adjusted in ClientOptions.Retry or by configuring a custom retry policy in ClientOptions.RetryPolicy.
Azure.RequestFailedException: La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi. ---> System.Net.WebException: La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de l'envoi. ---> System.IO.IOException: Impossible de lire les données de la connexion de transport : Une connexion existante a dû être fermée par l’hôte distant. ---> System.Net.Sockets.SocketException: Une connexion existante a dû être fermée par l’hôte distant
à System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- Fin de la trace de la pile d'exception interne ---
à System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
à System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
à System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest, Boolean renegotiation)
à System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
à System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
à System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
à System.Net.ConnectStream.WriteHeaders(Boolean async)
--- Fin de la trace de la pile d'exception interne ---
à System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
à System.Net.HttpWebRequest.GetRequestStream()
à Azure.Core.Pipeline.HttpWebRequestTransport.d__8.MoveNext()
--- Fin de la trace de la pile d'exception interne ---
à Azure.Core.Pipeline.HttpWebRequestTransport.d__8.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
à Azure.Core.Pipeline.HttpWebRequestTransport.Process(HttpMessage message)
à Azure.Core.Pipeline.HttpPipelineTransportPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.RequestActivityPolicy.ProcessNextAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
à Azure.Core.Pipeline.RequestActivityPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.ResponseBodyPolicy.d__5.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
à Azure.Core.Pipeline.ResponseBodyPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.LoggingPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelineSynchronousPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.RedirectPolicy.d__7.MoveNext()
--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---
à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
à Azure.Core.Pipeline.RedirectPolicy.Process(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.HttpPipelinePolicy.ProcessNext(HttpMessage message, ReadOnlyMemory`1 pipeline)
à Azure.Core.Pipeline.RetryPolicy.d__5.MoveNext()
All these calling to the service are made with the same URL and the same credential.
We would appreciate ANY idea why this problem occurs !