1

我使用 WCF 服务在 Windows Azure 上创建了一个站点。当我引用它并尝试调用它时,我收到此错误:

未处理的异常:System.Net.WebException:错误:System.Net.HttpWebRequest.EndGetRequestStream 处的 NameResolutionFailure (IAsyncResult asyncResult) [0x00000] 处 System.Net.HttpWebRequest.GetRequestStream () [0x00000] 处 System.Net.HttpWebRequest.GetRequestStream () [0x00000] 处 System.Web .Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name, System.Object[] 参数) [0x00000] in :0

我的 Web 服务解析为主机名而不是 IP 地址。在 Windows Azure 中,是否需要添加特殊设置才能使用 Web 服务?

4

1 回答 1

0

根据您提供的信息,您似乎有一个在 Windows Azure 中运行的 WCF Web 角色,当您尝试访问它时出现错误。

当您在 Windows Azure 中托管 WCF 站点时,您将拥有如下服务 URL:http: //your_service_name.cloudapp.net/servicename/methodname

您还需要在 WCF 服务中进行适当的绑定,以便可以从任何客户端访问它。这是大多数问题发生的地方,因为错误或错误的绑定会导致服务中断,因此没有人可以连接。您还可以验证您的 WCF 服务在从浏览器访问它时是否返回正确的 WSDL 信息。这是检查服务参考 URL 的测试。你验证过那部分吗?

当您尝试在客户端应用程序中引用它时,您将使用上面的引用 URL,该 URL 将列出内置的功能并且您可以使用它。在 Windows Azure 中,您的服务必须解析为主机名(不是 IP 地址,因为它是 VIP,所以它是正确的。

如果您可以从服务中获取 WSDL 但仍然无法获取参考,那么您仍然可以尝试通过绑定端点 URL(在 Azure 上)直接在代码中使用该服务,然后使用绑定和端点创建通道。

于 2012-08-31T00:38:41.150 回答