es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo un “una conexión existente ha sido cerrada de forma forzada por el host remoto” al cargar la página pero no al recargarla.

Esta es una aplicación de formularios web de C# Asp.net que realiza una llamada HttpClient PostAsync(). La primera vez que se carga la página, obtengo un error de “una conexión existente fue cerrada de forma forzosa por el host remoto”. Luego, cuando vuelvo a cargar la página, no obtengo el error y funciona. No he encontrado ningún caso similar en línea. ¿Alguna idea de qué podría ser esto?

“`csharp
protected void Page_Load(object sender, EventArgs e)
{
HttpClient client = new HttpClient();

<pre><code>string sessionId = GetSessionId(client);
</code></pre>

}
public static string GetSessionId(HttpClient client)
{
var parameters = new Dictionary<string, string=""> { { "userName", "*******" }, { "password", "********" }, { "orgId", orgId }, { "devKey", devKey } };
var sessionId = "";

<pre><code> parameters.Add("Content-Type", "application/x-www-form-urlencoded");
var encodedContent = new FormUrlEncodedContent(parameters);

var task = Task.Run(() => client.PostAsync(login_uri, encodedContent));

task.Wait();

var response = task.Result;

var content = response.Content;

var task2 = Task.Run(() => content.ReadAsStringAsync());
task2.Wait();
var result = task2.Result;

var payload = JObject.Parse(result);

sessionId = payload["response_data"]["sessionId"].ToString();

return sessionId;
}
</code></pre>

“`</string,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una posible razón de este error podría ser un problema de conectividad de red, donde el HttpClient no puede establecer una conexión estable con el servidor remoto durante el primer intento debido a problemas de latencia o congestión. Como resultado, la conexión es cerrada forzosamente por el host remoto, provocando el error.

    Sin embargo, en intentos posteriores, la conexión podría lograr establecerse y mantenerse estable, dando como resultado una respuesta exitosa.

    Otra posibilidad podría ser problemas en el lado del servidor, donde el servidor está sobrecargado y la solicitud inicial no puede ser procesada debido a limitaciones de capacidad del servidor. Una vez que la carga del servidor se reduce, las solicitudes posteriores son procesadas correctamente.

    Para resolver este problema, podrías intentar implementar lógica de reintento en tu código para manejar problemas relacionados con la red. También podrías considerar investigar cualquier problema en el lado del servidor y trabajar con el administrador del servidor para resolverlos si es necesario.

Comments are closed.