2009-08-14 5 views
1

Comment autoriser le HttpListener dans vb2005.net à autoriser un accès externe?Comment autoriser HttpListener dans vb2005.net à autoriser un accès externe?

À des fins de test, je l'ai configuré pour utiliser les mêmes ports que ceux utilisés par mon serveur Web, donc il n'y a pas de problèmes de pare-feu.

les préfixes sont configurés pour prendre le localhost sur le port 80 le royaume est unset AuthenticationSchemes = Net.AuthenticationSchemes.Anonymous

cela fonctionne très bien localement sur la machine, mais ne peut pas être atteint par le navigateur Web sur Toute autre machine sur mon réseau

+0

notes, j'ai ajouté l'ip LOCALHOST au préfixe, et l'IP de l'ordinateur au préfixe et ils sont disponibles pour le LAN maintenant, mais j'ai été incapable de tester une connexion réseau – Jim

Répondre

0

Le problème est probablement dû au fait qu'un client distant enverra la requête avec un en-tête host de 'yourmachinename', et non 'localhost' ou l'adresse IP. Contrairement à IIS, qui gère localhost et le nom de la machine locale, et l'IP tout de même (sauf si vous définissez explicitement les en-têtes de l'hôte), HttpListener est particulièrement pointilleux sur la requête à laquelle il répondra.

Réglez le programme d'écoute de sorte qu'il soit à l'écoute des demandes sur «yourmachinename» et que les clients distants puissent alors lui parler. Ensuite, pour les tests locaux, assurez-vous de changer l'hôte de localhost, car cela ne fonctionnera probablement plus.

+0

donc http: // yourmachinename: port? Im construire une classe pour permettre la fonctionnalité serveur web simple à mes programmes, j'ai trouvé que l'IP de l'ordinateur a permis l'accès LAN, et en supposant Im utilisant les mêmes ports pour le serveur web apache qui fonctionnent, puis-je utiliser le nom de l'ordinateur aller à l'extérieur – Jim

+0

Salut Jim, Oui, cela semble à peu près juste - et avec le HttpListener vous pouvez configurer plusieurs préfixes (exemple montré ici: http://msdn.microsoft.com/en-us/library/system.net. httplistener.httplistener.aspx) qui sont spécifiés dans le formulaire URI complet (y compris l'adresse Web, le port et le chemin) auxquels l'écouteur répondra. Le résultat est que si vous voulez que votre écouteur réponde à 127.0.0.1 (localhost), [local-ip] et [nom-machine], vous devrez ajouter les trois préfixes à l'écouteur pour que cela fonctionne. –

0

Au lieu de taper le nom d'hôte, utilisez un caractère générique

http: // *: port/chemin

cela permettra à des clients externes de se connecter via un nom d'hôte

Questions connexes