我使用 WCF 服务在 Windows Azure 上创建了一个站点。当我引用它并尝试调用它时,出现此错误:
未处理的异常:System.Net.WebException:错误:NameResolutionFailure 在 System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] 中:0 在 System.Net.HttpWebRequest.GetRequestStream () [0x00000] 中:0 在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name, System.Object[] 参数) [0x00000] 中:0
我的 Web 服务解析为主机名而不是 IP 地址。在 Windows Azure 中,我需要添加特殊设置才能使用 Web 服务吗?
最佳答案
根据您提供的信息,您似乎在 Windows Azure 中运行了一个 WCF Web 角色,当您尝试访问它时会出现错误。
当您在 Windows Azure 中托管 WCF 站点时,您将拥有如下服务 URL: http://your_service_name.cloudapp.net/servicename/methodname
您还需要在 WCF 服务中进行适当的绑定(bind),以便可以从任何客户端访问它。这是大多数问题发生的地方,因为错误或错误的绑定(bind)会导致服务中断,导致无人可以连接。您还可以验证 WCF 服务在从浏览器访问时是否返回正确的 WSDL 信息。这是一个检查服务引用 URL 的测试。你验证过那部分吗?
当您尝试在客户端应用程序中引用它时,您将使用上面的引用 URL,其中将列出其中内置的函数,您可以使用它。对于 Windows Azure,您的服务必须解析为主机名(不是 IP 地址,因为它是 VIP,因此可能会更改),因此它是正确的。
如果您可以从服务获取 WSDL,但仍然无法获取引用,那么您仍然可以尝试通过绑定(bind)端点 URL(在 Azure 上)直接在代码中使用该服务,然后使用绑定(bind)和端点创建 channel 。
关于wcf - 名称解析失败,Windows Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123725/