Question

Je reçois l'erreur suivante lorsque je tente d'appeler un service Web ASP.NET à partir d'une application Web ASP.NET. Je crois qu'il est parce que le service Web et applications Web sont sur la même ferme / derrière le même équilibreur de charge.

A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because
connected host has failed to respond [IP Address removed]:80

Cette erreur ne se produit pas lorsque j'appelle le service Web à la ferme à partir du Web App sur ma machine locale, ou quand j'appelle le service Web sur ma machine locale à partir du Web App à la ferme.

Toute idée pourquoi cette erreur se produit?

Était-ce utile?

La solution

La solution à mon problème était d'allumer NATing sur l'équilibreur de charge.

La demande a été faite à partir d'un serveur de la batterie à l'équilibreur de charge, le Load Balancer enverrait cette demande à l'un des serveurs de la batterie (peut-être même le même serveur qui l'a demandé). Le problème était, le serveur qui gère la demande essaierait d'envoyer la réponse au rendre directement à la « demande client » au lieu de retourner à l'équilibreur de charge, de sorte que le serveur qui a fait la demande serait tout simplement ignorer la réponse parce qu'il était pas envoyé par l'équilibreur de charge. En tournant sur NATing, sont envoyés toutes les réponses Retour à l'équilibreur de charge, puis l'équilibreur de charge envoie la réponse au client d'origine.

Autres conseils

Ceci est juste une supposition, mais peut le serveur Web réellement voir l'adresse IP utilisée? Si elle est dans une ferme derrière un équilibreur de charge alors que la propriété intellectuelle peut être bloquée par l'équilibreur de charge lui-même ou un serveur de pare-feu ou un proxy.

Pouvez-vous accéder au serveur Web via le bureau à distance et ping l'adresse IP?

La pile TCP / IP sur votre nœud de la batterie ne va pas acheminer l'appel à l'adresse IP de l'équilibreur de charge, mais se traduira automatiquement en faire un appel local sur 127.0.0.1:80 sur le nœud de la batterie spécifique qui est faire l'appel. Assurez-vous que vos serveurs Web sont mis en place pour gérer ce cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top