我想开发一个iPhone应用程序来使用C#编写的Web服务。我希望能够通过我个人电脑上的本地主机(http://localhost:54053/Service1.asmx)访问网页,因此我不需要直接推送Web服务。有关如何做到这一点的任何建议?从网络上的计算机访问Web服务本地主机
非常感谢。
我想开发一个iPhone应用程序来使用C#编写的Web服务。我希望能够通过我个人电脑上的本地主机(http://localhost:54053/Service1.asmx)访问网页,因此我不需要直接推送Web服务。有关如何做到这一点的任何建议?从网络上的计算机访问Web服务本地主机
非常感谢。
您将不得不在开发机器上使用IIS。内置的Cassini服务器直接绑定到127.0.0.1,并且只能在本地访问。要从远程设备访问它,您需要在IIS中设置主机。卡西尼对127.0.0.1有限制,不能远程访问。
一旦你有一个网站设立的答案是不是127.0.0.1的IP地址,它的配置,以满足您新的Web服务,那么您可以使用IP地址来得到它。
首先使它工作像
http://localhost/Service1.asmx
要做到这一点,你必须让本地IIS中的Web服务的工作。
然后找到你的本地机器的IP。
www.whatismyipd.com
然后肯定的是,80端口是开放的(如果你不知道如何做到这一点请尝试关闭Windows防火墙关闭)
然后调用与Web服务你的IP地址如下: http://xxx.xxx.xxx.xxx/Service.asmx
无需通过IIS运行它。这是关于打开端口是80或54053. – 2010-01-21 20:54:06
54053将无法正常工作,因为这是一个卡西尼端口。 Cassini直接绑定到127.0.0.1,不能以这种方式远程访问。 – 2010-01-21 20:57:27
我假设你有一个手机或模拟器在mac上运行。这意味着它们与您在asp.net开发的web服务不在同一台机器上。
你需要为“localhost”更改为您的计算机可以达到的IP。你可以通过运行“ipconfig”来做到这一点。如果这个mac与你的服务在同一个本地网络上,这可能是192.x.x.x或10.x.x.x。
例如:http://192.168.1.20:54053/Service1.asmx将是我的本地网络上的地址。
如果需要使用Internet地址它要复杂得多,因为你极有可能打开防火墙端口和一个网关/路由器做端口转发。
内置的卡西尼服务器直接绑定到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。
。
你的电脑上有IIS吗? – DyingCactus 2010-01-21 20:52:17
我这样做,我会尝试下面建议的方法。谢谢大家的建议。 – 2010-01-21 21:39:18