Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了试图从Android模拟器访问本地托管的ASP.net服务 – 不在127.0.0.1上公开?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在运行通过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上公开?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: