试图从Android模拟器访问本地托管的ASP.net服务 – 不在127.0.0.1上公开?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了试图从Android模拟器访问本地托管的ASP.net服务 – 不在127.0.0.1上公开?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1815字,纯文字阅读大概需要3分钟。
内容图文
我正在运行通过Visual Studio运行的ASP.net服务.它可以通过浏览器访问(示例API调用)http:// localhost:9000 / api / Maps / 1.当我通过浏览器访问http://127.0.0.1:9000/api/Maps/1时,出现400错误(错误请求 – 无效主机名).
Android模拟器可以成功拨打外部网站(例如http://httpbin.org/ip).当我指示应用程序从http://10.0.2.2:9000/api/Maps/1中提取JSON时(10.0.2.2是网络告诉我将模拟器指向主机的本地主机,结果是HTML for(我假设的是)上面127.0.0.1中的400错误.
似乎当我从Visual Studio运行Web服务时(2013年,如果这有所不同),它在localhost上正确公开,但不是127.0.0.1,因此无法进行测试.任何人都可以帮我解决这个问题吗?谢谢!
解决方法:
该问题是由主机名的IIS Express绑定引起的,主机名由Visual Studio设置为“localhost”.因此,“127.0.0.1”给出“错误400.错误请求(无效主机名)”.
解决这个问题需要几个步骤.
>修改applicationhost.config
这是IIS Express的配置文件,应位于ASP.NET项目的根目录中.如果无法轻易找到此文件,请右键单击任务栏中的IIS express,单击“显示所有应用程序”,并将注册的站点放在列表中.单击您尝试访问的站点.应在底部列出两个文件路径“Path”和“Config”. config是applicationhost.config文件的位置.
绑定信息将具有以下格式:
<binding protocol="http" bindingInformation="*:17687:localhost" />
bindingInformation中的冒号分隔值表示要侦听的IP地址,端口和主机名.您可以删除主机名以避免IIS Express在请求标头字段中期望“localhost”:
<binding protocol="http" bindingInformation="*:17687:" />
>退出IIS Express
需要重新启动IIS Express才能进行此配置更改.可以通过右键单击任务栏中的IIS来关闭它,然后选择“退出”或选择特定站点(大多数情况下只会有1个,除非有多个Web类型项目 – ASP.NET,WCT等.)然后单击“停止”,然后单击“开始”.但是退出它会更好,因为可能需要进行额外的配置,而PC可能还需要重新启动.
>防火墙
测试站点使用的端口应包含在防火墙中.在上面的例子中,端口地址将是17687.打开防火墙设置并添加入站规则以允许此TCP端口.此时,可能需要重新启动.至少应停止并重新启动项目以重新启动IIS Express.
内容总结
以上是互联网集市为您收集整理的试图从Android模拟器访问本地托管的ASP.net服务 – 不在127.0.0.1上公开?全部内容,希望文章能够帮你解决试图从Android模拟器访问本地托管的ASP.net服务 – 不在127.0.0.1上公开?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。