我正在尝试开发一个iPhone应用程序来使用C#编写的Web服务。我希望能够通过我的PC上的localhost访问网页(http://localhost:54053/Service1.asmx),这样我就不必再推送Web服务。有关如何执行此操作的任何建议吗?
非常感谢。
答案 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将是我本地网络上的地址。
如果您需要使用互联网地址,则要复杂得多,因为您很可能必须打开防火墙端口并在网关/路由器上进行端口转发。