Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement après une période de temps, ou une connexion établie a échoué

Je rencontre un problème :

Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement après une période de temps, ou une connexion établie a échoué car l'hôte connecté n'a pas répondu URL.

Aussi je reçois des question comme:

Système.IO.IOException: Impossible d'écrire des données sur la connexion de transport: Une connexion existante a dû être fermée par l'hôte distant

et

Système.Net.WebException: L'opération a expiré au Système.Net.WebClient.UploadFile(adresse Uri, String méthode, String fileName)

Je sais que cette question a demandé avant, mais croyez-moi, j'ai essayé presque tous unique de résolution à ma fin.

Est étrange c'est que ce problème n'apparaît pas sur ma fin à tous et seulement lorsque le client de tenter d'utiliser ce qui n'est pas constante. Quelques temps mon application fonctionne très bien à la fin de leur trop.

Ce que je suis en train d'accomplir est j'ai créé une application de bureau (Win Forms & C#) et d'essayer de se connecter au client lors de l'envoi de la demande à mon php api serveur est hébergé sur GODaddy.

var request = (HttpWebRequest)WebRequest.Create("url");
if (request != null)
{
    #region System.Net.WebException
    request.Method = "POST";
    if (!string.IsNullOrEmpty(body))
    {
        var requestBody = Encoding.UTF8.GetBytes(body);
        request.ContentLength = requestBody.Length;
        request.ContentType = "application/json";
        using (var requestStream = request.GetRequestStream())
        {
            requestStream.Write(requestBody, 0, requestBody.Length);
        }
    }
    else
    {
        request.ContentLength = 0;
    }
    request.Timeout = 15000;
    request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);

    string output = string.Empty;
    try
    {
        using (var response = (HttpWebResponse)request.GetResponse())
        {
            using (var stream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1252)))
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    while (!stream.EndOfStream)
                    {
                        output += stream.ReadLine();
                    }
                    output = stream.ReadToEnd();
                }
            }
        }
    }
    catch
    {
        //Excaption Caught here
    }
}

Merci de m'aider.

Merci d'avance.

Si il fonctionne toujours sur votre fin et seulement de temps en temps sur votre client, il pourrait être un problème de firewall, mais il est http...pensez-vous utiliser un port différent pour HttpWebRequests autre que 80 & 443? Utilisez ping pour tester le temps de réponse entre votre client et le serveur en tant que bien de s'assurer qu'ils ne sont pas du délai ou de faire tomber des paquets
Je n'ai pas utiliser n'importe quel port pour mon httpWebRequest. Aussi je ne peux pas utiliser la commande ping à partir de mon ordinateur du client car je n'ai pas accès.
Qui font de ce difficile à résoudre. Le code est OK et vous avez dit que c'est le travail pour vous et parfois pour eux aussi. Je ne sais pas comment, mais vous devrez résoudre les problèmes du réseau de connexions pour vous assurer que c'est pas la question. Désolé je ne pouvais pas être de plus d'aide.
Je sais que c'est dur. Je suis également très difficile à déboguer. Mais qu'en est HttpWebRequest de port vous sont en train de parler? Si son aide vous pouvez voir l'intérieur exception que je reçois quand tout problème s'est produit au client: Système d'.Net.WebException: Une exception s'est produite lors d'une requête WebClient. ---> Système.IO.IOException: Impossible d'écrire des données sur la connexion de transport: Une connexion existante a dû être fermée par l'hôte distant. ---> Système.Net.Les Sockets.Exception socketexception: Une connexion existante a dû être fermée par l'hôte distant au Système.Net.Les Sockets.Socket.Envoyer(Byte[] buffer
Les ports par défaut sont 80 & 443 et la plupart des tous les pare-feu autoriser ces ports, car ceux-ci sont réservés pour http. Si vous pouviez la cause de l'erreur(obtenir l'accès à votre réseau des clients), vous pourriez le débogage et l'étape dans votre application jusqu'à ce que le code supprime la connexion et puis, vous savez ce qui se passe.

OriginalL'auteur Manish | 2015-05-07