我正在运行通过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上公开?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)