您可能需要打开防火墙您的电脑上,以便接受来自您的仿真器具备IP的远程连接(使用adb shell ifconfig
为SushiHangover建议看看你的仿真器的IP地址)
要设置防火墙规则,以允许远程连接,请参阅本指南(这是关于WCF,但添加防火墙规则应该是相同的,无论使用的服务技术): https://developer.xamarin.com/guides/cross-platform/application_fundamentals/web_services/walkthrough_working_with_WCF/#Configuring_Remote_Access_to_IIS_Express
相关位(编辑拿WCF):
将IIS Express配置为接受远程连接 - 此步骤涉及编辑IIS Express的配置文件以接受特定端口上的远程连接,然后设置IIS Express的规则以接受传入流量。
向Windows防火墙添加例外 - 我们必须通过Windows防火墙打开远程应用程序可以使用的端口。 您需要知道工作站的IP地址。为了这个例子的目的,我们假定我们的工作站有IP地址192.168.1.143。
让我们从配置IIS Express开始监听外部请求。我们可以通过在[solutiondirectory] .vs \ config \ applicationhost.config中编辑IIS Express的配置文件来完成此操作,如以下屏幕截图所示:
找到包含服务名称的网站元素。它应该看起来像下面这样的XML片段:
<site name="HelloWorldWcfHost" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="\\vmware-host\Shared Folders\tom\work\xamarin\code\private-samples\webservices\HelloWorld\HelloWorldWcfHost" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:9607:localhost" />
</bindings>
</site>
我们将需要添加另一个结合打开端口9608到外面的交通。以下XML添加到绑定元素,用你自己的IP地址替换IP地址:
<binding protocol="http" bindingInformation="*:9608:192.168.1.143" />
这将配置IIS Express来从任何远程IP地址中接受HTTP流量在端口9608上的外部电脑的IP地址。上面的代码片段假定运行IIS Express的计算机的IP地址为192.168.1.143。变更后,绑定元素应如下所示:
<site name="HelloWorldWcfHost" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="\\vmware-host\Shared Folders\tom\work\xamarin\code\private-samples\webservices\HelloWorld\HelloWorldWcfHost" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:9607:localhost" />
<binding protocol="http" bindingInformation="*:9608:192.168.1.143" />
</bindings>
</site>
接下来,我们需要配置IIS快递接受端口9608的入站连接。启动了管理命令提示符,并运行此命令:
netsh http add urlacl url=http://192.168.1.143:9608/ user=everyone
的最后一步是配置Windows防火墙以允许在端口9608.对外交通从管理命令提示符,运行以下命令:
netsh advfirewall firewall add rule name="IISExpressXamarin" dir=in protocol=tcp localport=9608 profile=private remoteip=localsubnet action=allow
这个命令将允许在端口9608的传入流量从在同一子网作为Windows 10件作品的所有设备塔季翁。
确定本地子网是否为'10.0.3.XXX',即'adb shell ifconfig'并查看模拟器上配置的接口。确保你的模拟器可以ping你的PC,例如'adb shell ping 10.0.3.2'(用正确的子网替换IP地址...) – SushiHangover
你设置了凭证吗? webClient.Credtials = new System.Net.NetworkCredential(“user”,“pw”); – user1230268