2010-01-21 6 views
2

J'essaie de développer une application iPhone pour consommer un service Web écrit en C#. Je veux être en mesure d'accéder à la page Web via le localhost sur mon PC (http://localhost:54053/Service1.asmx) afin que je n'ai pas besoin de pousser le service Web en direct pour le moment. Des recommandations sur la façon de faire cela?Accéder aux services Web localhost depuis l'ordinateur sur le réseau

Merci beaucoup.

+0

Avez-vous des services Internet (IIS) sur le PC? – DyingCactus

+0

Je le fais, je vais essayer la méthode suggérée ci-dessous. Merci à tous pour vos suggestions. –

Répondre

1

Vous devrez utiliser IIS sur votre machine de développement. Le serveur Cassini intégré se lie directement à 127.0.0.1 et n'est accessible que localement. Pour y accéder depuis un périphérique distant, vous devez configurer un hôte dans IIS. Cassini a une limitation à 127.0.0.1 et n'est pas accessible à distance. Une fois que vous avez configuré un site Web pour répondre à une adresse IP autre que 127.0.0.1 et qu'il est configuré pour desservir votre nouveau service Web, vous pouvez utiliser l'adresse IP pour y accéder.

0

d'abord le faire fonctionner comme

http://localhost/Service1.asmx

Pour ce faire, vous devez faire votre travail de service Web dans IIS local.

Puis trouvez l'Ip de votre machine locale.

www.whatismyipd.com

Ensuite, assurez-vous que le port 80 est ouvert (Si vous n'êtes pas sûr comment faire Eteignez le pare-feu Windows off)

appeler ensuite le service Web avec votre adresse IP comme: http://xxx.xxx.xxx.xxx/Service.asmx

+0

Pas besoin de l'exécuter via IIS. Il s'agit d'ouvrir le port 80 ou 54053. –

+0

54053 ne fonctionnera pas parce que c'est un port Cassini. Cassini se lie directement à 127.0.0.1 et n'est pas accessible à distance de cette manière. –

0

Je suppose que vous avez un téléphone ou un émulateur fonctionnant sur un mac. Cela signifie qu'ils ne sont pas sur la même machine que votre webservice qui est développé dans asp.net.

Vous devez remplacer «localhost» par une adresse IP à laquelle votre ordinateur peut être contacté. Vous pouvez le faire en exécutant "ipconfig". Si le mac est sur le même réseau local que votre service, il s'agit probablement d'un élément 192.x.x.x ou d'un élément 10.x.x.x. Par exemple: http://192.168.1.20:54053/Service1.asmx serait l'adresse sur mon réseau local.

Si vous avez besoin d'utiliser une adresse Internet, c'est beaucoup plus complexe, car il est très probable que vous ayez à ouvrir des ports de pare-feu et à faire une redirection de port vers une passerelle/routeur.

1

Le serveur Cassini intégré se lie directement à 127.0.0.1 et n'est accessible que localement.

Vous pouvez essayer un truc Fixer une prise à votre localhost adresse de service Web comme

var localSocket =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
       localSocket .Connect(new IPEndPoint(IPAddress.Loopback, localPortnumber)); 

lier ensuite une prise à IPEndPoint comme

Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
       listener.Bind(new IPEndPoint(IPAddress.Any, 8080)); 

Et puis accéder à votre service Web en une mode serveur client.

Un exemple de travail complet peut être vu here.


.

Questions connexes