从网络上的计算机访问Web服务localhost

时间:2010-01-21 20:37:21

标签: c# iphone networking web-services localhost

我正在尝试开发一个iPhone应用程序来使用C#编写的Web服务。我希望能够通过我的PC上的localhost访问网页(http://localhost:54053/Service1.asmx),这样我就不必再推送Web服务。有关如何执行此操作的任何建议吗?

非常感谢。

4 个答案:

答案 0 :(得分:1)

您必须在开发计算机上使用IIS。内置的Cassini服务器直接绑定到127.0.0.1,只能在本地访问。要从远程设备访问它,您需要在IIS中设置主机。 Cassini的限制为127.0.0.1,无法远程访问。

如果您的网站设置为应答不是127.0.0.1的IP地址,并且配置为提供新的网络服务,那么您可以使用该IP地址来访问它。

答案 1 :(得分:1)

内置的Cassini服务器直接绑定到127.0.0.1,只能在本地访问。

你可以试一试 将套接字附加到您的localhost Web服务地址

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

然后将套接字绑定到IpEndPoint,就像那样

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

然后以客户端服务器方式访问您的Web服务。

可以看到一个完整的工作示例here


答案 2 :(得分:0)

首先让它像

一样工作

http://localhost/Service1.asmx

为此,您必须使您的Web服务在本地IIS中运行。

然后找到本地机器的IP。

www.whatismyipd.com

然后确保端口80已打开(如果您不确定如何执行此操作,请尝试关闭Windows防火墙)

然后使用您的IP地址调用Web服务: http://xxx.xxx.xxx.xxx/Service.asmx

答案 3 :(得分:0)

我假设您要么在Mac上运行手机或模拟器。这意味着它们与您在asp.net中开发的Web服务不在同一台机器上。

您需要将“localhost”更改为可以访问计算机的IP。您可以通过运行“ipconfig”来完成此操作。如果mac与您的服务位于同一本地网络上,则可能是192.x.x.x或10.x.x.x。

例如:http://192.168.1.20:54053/Service1.asmx将是我本地网络上的地址。

如果您需要使用互联网地址,则要复杂得多,因为您很可能必须打开防火墙端口并在网关/路由器上进行端口转发。