我在Windows Azure上使用WCF服务创建了一个站点。当我引用它并尝试调用它时,我收到此错误:
UNHANDLED EXCEPTION:System.Net.WebException:错误:NameResolutionFailure 在System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)[0x00000] in:0 在System.Net.HttpWebRequest.GetRequestStream()[0x00000]中:0 在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(System.String method_name,System.Object [] parameters)[0x00000] in:0
我的网络服务解析为主机名而不是IP地址。在Windows Azure中,是否需要添加特殊设置才能使用Web服务?
答案 0 :(得分: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,您的服务必须解析为主机名(而不是可能因VIP而改变的IP地址),因此它是正确的。
如果您可以从服务获取WSDL但仍然无法获得引用,那么您仍然可以通过绑定端点URL(在Azure上)直接尝试在代码中使用该服务,然后使用绑定和端点创建通道。