Très nouveau sur le Webapi Self Host, mais je suis très impressionné par sa facilité d'utilisation et sa prolifération. Au moins à travers ce Tutoriel . Tout ce que j'ai fait jusqu'à présent travaille sur ma machine de développement, que j'utilise localhost, 127.0.0.1 ou mon IP LAN (192.168.0.x) mais je suis déconcerté pourquoi je ne peux pas accéder au service d'un autre ordinateur, même d'autres. Dans le même sous-réseau.
bref après avoir traversé le tutoriel sur la machine où il s'exécute: Parcourir à P>
config.HostNameComparisonMode = HostNameComparisonMode.Exact //default is Strong Wildcard
3 Réponses :
Je voudrais essayer quelques choses: p>
Tout d'abord, débarrassez-vous de la ligne HostnamecomparisonMode. Cela pourrait réellement désactiver les demandes provenant d'autres machines. P>
Si les choses ne fonctionnent toujours pas, essayez de vous débarrasser des ACL de l'URL et d'exécuter votre application en tant qu'administrateur et de voir si cela fonctionne. Si cela fonctionne, vous pourrez peut-être ajouter l'URL ACL sur et ne pas avoir à exécuter en tant qu'administrateur. Vous ne devez avoir besoin que celui avec '+' comme nom d'hôte. P>
De mon expérience, si IIS est en cours d'exécution sur la même machine, vous avez besoin d'HostnamecomparisonMode.exact ou IIS volera les demandes. Hmm, attendez, peut-être pas sur un port autre que 80.
Je m'excuse, j'ai oublié de mentionner chaque fois que j'ai essayé de changer Hostnamecomparisonmode, j'ai obtenu une exception sur le serveur.openasync (). Attendez (); ligne. L'exception exacte est imbriquée (multiples niveaux de l'intérieur) comme: système.AccrégationException / system.servicemodel.communicatione xception / .net.httpli steneexception: "Le format du nom de réseau spécifié n'est pas valide". C'est pourquoi je pensais que cela ne fonctionnerait pas
Je l'ai reçu pour compiler et exécuter le changement de paramètre de configuration de configuration de 196.168.0.x à localhost; Cependant, le service n'a pas réussi à fonctionner sur la machine locale, de sorte que c'est dehors.
Modifiez la configuration en localhost et ne définissez pas l'amateurComparisonMode. Cela devrait fonctionner à la fois pour les machines locales et les machines distantes.
Merci Youssef pour votre temps mais je ne vois aucun changement de comportement. J'ai redémarré et les ACL étaient partis avant de commencer mon selfhost et apparemment acquis l'ACL par lui-même; Cependant aucun autre changement.
Eh bien, ce n'était pas le pare-feu matériel, Quelqu'un peut-il connaître un bon site qui explique comment les pare-feu et les eaux de fil d'aire de fil interagissent; ou je suppose que cela doit juste être son premier test. P>
Ce n'est pas une réponse
J'ai fait face au même problème lorsque j'ai essayé de vous accueillir à l'aide de Owin. Ce qui a fonctionné pour moi était - p>
C'est ça! J'ai pu appeler mon API d'autres ordinateurs sur le réseau. P>
J'espère que cela vous aide ... p>
Exécutez-vous le service sous Domaine \ User? Je trouve généralement que sa plus facile d'exécuter le service en tant que service réseau, puis dans la commande netsh que vous mettez User = "NT Authority \ Service de réseau"
En outre, je vérifierais votre pare-feu et je vous assurerais que NetStat -A montre votre service d'écoute.
Merci Darrel pour les idées. Je suis toujours en train d'exécuter le service de débogage sous mon utilisateur (qui a des droits d'administrateur si cela importe). J'ai Ran NetStat -A (sur ma machine de développement / hébergement si c'est ce que vous voulez dire) et que vous voyez les entrées suivantes (entre autres): Adresse locale de proto Etat de l'adresse étrangère TCP 0.0.0.0:3636 Domaine: 0 Écouter TCP [::]: 3636 Domaine: 0 Écoute pas tout à fait sûr de quoi faire de cela. Je suppose que je vais essayer de confirmer le pare-feu.