2009-05-31 5 views
0

Dupliquer: Il s'agit exactement de la même question, de la même personne, que Issue with Incorrect URLs in the WSDL of a .NET Web Service, et il a exactement la même réponse. Fermons-le s'il vous plaît et fusionnons-le avec l'autre..NET Web Service - Résolution incorrecte du nom d'hôte


Nous avons installé un site Web ASP.NET sur le serveur d'un client. Ce site dispose d'un service web avec quelques méthodes web qui sont appelées par un objet Flash afin d'afficher un fil de nouvelles. Si vous naviguez sur leur site (ex: www.domain.com), tout fonctionne correctement sauf le flash. Le problème est que lorsque nous naviguons vers le .asmx, l'en-tête montre que l'hôte est un sous-domaine interne à son réseau (internal.domain.com). Évidemment, cela ne résout pas à toute adresse IP publique lors de la navigation de l'extérieur de leur réseau. Cela provoque l'échec du Flash car l'objet flash est incorporé sur une page et exécute donc le côté client.

J'ai vérifié le nom de l'ordinateur sur le serveur en question, et il ne correspond même pas "internal.domain.com" - c'est quelque chose de complètement différent. D'où provient cette information. Il ne provient pas d'IIS, car aucun en-tête d'hôte n'est configuré et l'adresse IP du site est définie sur (tous non affectés).

Nous devons soit forcer le service Web à s'exécuter sur un hôte spécifique, soit changer quelque chose sur le serveur afin qu'il se résout en un nom d'hôte public valide. Toute aide est grandement appréciée !!!!

Répondre

0

Les noms d'hôtes de service Web sont généralement configurés dans web.config lorsqu'ils sont utilisés par .NET. Quand ils sont consommés par flash, vous devrez peut-être aller chercher dans le fichier flash. (Je suppose qu'il est encore configuré pour une sorte d'environnement SIT.)

+0

Indépendamment de la manière dont le fichier Flash consomme le service Web, si je navigue directement vers le fichier .ASMX dans IE, et que je clique sur l'un des sites Web méthodes, l'hôte est affiché comme internal.domain.com. chose que je peux remplacer dans le web.config? Si oui, où? – Keith

+0

J'ai déjà vu cela sur certains des services que je consomme. Le principal problème était que le document WSDL rejetait le mauvais nom de domaine. Je voudrais vérifier cela pour voir si c'est là que le problème est. De toute façon, vous devriez être en mesure de forcer le client (flash) à se connecter au service sans vraiment se soucier de ce qui est interne à la liste. – Bluephlame

0

Je ne suis pas sûr des détails de ceci, mais j'ai vu cette plainte en ce qui concerne WCF. les en-têtes d'hôte dans IIS

C'est IIS qui passe le nom d'hôte à ASP.NET ou WCF, et il passe l'en-tête de l'hôte quand il est configuré S'il n'est pas configuré, alors je suppose qu'il n'enverra pas cet en-tête en tant que "nom d'hôte", même si le client définit cet en-tête dans la requête

+0

Drôle que vous mentionnez ceci. J'ai essayé de configurer les en-têtes d'hôte dans IIS (ils exécutent IIS6) pour inclure www.domain.com et domain.com, et en testant ceci, j'ai reçu "Bad hostname" essayant juste de naviguer vers le site. Si je pouvais corriger ce problème, pensez-vous que cela résoudrait le problème avec la résolution du nom d'hôte du service Web en tant que nom de domaine interne? – Keith

+0

Il pourrait. Encore une fois, je ne trouve pas l'article que j'ai lu. Il y avait quelqu'un qui pose cette question ici sur SO (pour WCF), mais je ne sais pas si c'est là que j'ai vu la réponse. –

Questions connexes