C# 无法从自己的web服务调用Bing地图地理代码服务

C# 无法从自己的web服务调用Bing地图地理代码服务,c#,asp.net,web-services,azure,bing-maps,C#,Asp.net,Web Services,Azure,Bing Maps,我有一个自己的web服务包装了geo bing地图地理代码web服务。此地理编码web服务托管在Azure web角色中。当我尝试拨打电话时,我收到以下错误: 没有可以接受消息的端点正在侦听。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。。无法连接到远程服务器 当我从winforms testapp测试它时,使用相同的创建的WS-client代理,结果是正确的 看来,从我自己的Web服务调用Bing地图Web服务是不允许的 有什么不

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

没有可以接受消息的端点正在侦听。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。。无法连接到远程服务器

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

看来,从我自己的Web服务调用Bing地图Web服务是不允许的


有什么不对劲的线索吗

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

只是一个提示,Bing地图REST服务比SOAP服务具有更好的地理编码。它们也更快更轻。我在这里有一篇关于如何使用.NET中的REST服务的博文:


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

试试Fiddler2它将让您检查请求和响应好主意!我现在将在WinForms应用程序中检查这一点,我看到请求进入Fiddler。在回发期间使用web应用程序,我没有看到任何流量进入Fiddler,它只是等待10秒,然后显示原始发布的错误。更新:我为请求/响应启用了WCF跟踪。来自web和来自WinForms服务代理客户端的请求是相同的,因此请求消息中没有损坏或其他任何内容……更新2:我使用相同的代码创建了一个常规asp.net web应用程序,创建的WS-client代理也相同,可以正常工作。但当我将其作为Azure web角色托管时,错误再次发生。看起来这个错误只发生在Azure托管期间(本地)…所以这是一个在本地使用Azure Compute Emulator时发生的错误,而不是实际在云中运行?没错。这个应用程序在本地运行。Thx Ricky,我将在下一次迭代中把它作为一个很好的重构任务写下来。