【问题标题】:Bing maps geocode service cannot be called from own web service无法从自己的 Web 服务调用 Bing 地图地理编码服务
【发布时间】:2012-02-27 21:56:43
【问题描述】:

我有一个自己的 Web 服务,它封装了 geo bing 地图地理编码 Web 服务。此地理编码 Web 服务托管在 Azure Web 角色中。当我尝试拨打电话时,我收到以下错误:

http://dev.virtualearth.net/webservices/v1/geocodeservice/GeocodeService.svc 上没有可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关详细信息,请参阅 InnerException(如果存在).. 无法连接到远程服务器

当我从 winforms testapp 测试它时,使用相同创建的 WS 客户端代理,结果是正确的。

似乎不允许从我自己的网络服务调用 Bing 地图网络服务...

任何线索有什么问题......?

【问题讨论】:

  • 试试 Fiddler2 fiddler2.com/fiddler2 它会让你检查请求和响应
  • 好主意!我现在检查一下
  • 在 WinForms 应用程序中,我看到请求进入 Fiddler。在回发期间使用网络应用程序,我没有看到任何流量进入 Fiddler,它只是等待 10 秒,然后显示原始发布的错误。
  • 更新:我为请求/响应启用了 WCF 跟踪。来自 Web 和 WinForms 服务代理客户端的请求是相同的,因此请求消息中没有损坏或其他任何内容....
  • Update2:我制作了一个常规的 asp.net Web 应用程序,使用相同的代码,创建相同的 WS 客户端代理,并且可以正常工作。但是当我将它作为 Azure Web 角色托管时,错误再次出现。看起来此错误仅在 Azure(本地)托管期间发生......

标签: c# asp.net web-services azure bing-maps


【解决方案1】:

提示一下,Bing 地图 REST 服务的地理编码比 SOAP 服务好得多。它们也更快,重量更轻。我有一篇关于如何在 .NET 中使用 REST 服务的博文:http://rbrundritt.wordpress.com/2012/01/06/bing-maps-rest-service-net-libraries/

只是一个提示,当使用服务器端代码中的 REST 服务时,您可以在 REST 请求中设置用户 IP 地址信息。将此设置为 127.0.0.1。这将诱使地理编码器使用默认的地理编码算法,而不是针对您的服务器所在的国家/地区使用本地化算法。

【讨论】:

  • 谢谢 Ricky,我会把它写下来,作为下一次迭代的一个很好的重构任务。
【解决方案2】:

问题解决了。我们在办公室使用代理(设置为“自动检测设置”)。代理不允许从 Azure Web 角色调用外部 Web 服务。当使用直接互联网连接时,它工作得很好。

【讨论】:

  • 所以这是您在本地使用 Azure Compute Emulator 时发生的错误,而不是实际在云中运行?
  • 没错。此应用在本地运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多