Skip to main content
 首页 » 编程设计

c#之在运行时动态调用 Web 服务

2024年01月12日32kerrycode

我正在使用示例代码从此站点动态调用 Web 服务: http://www.crowsprogramming.com/archives/66

我面临的问题是当我使用类从 Web 应用程序调用 Web 服务时出现以下错误:“找不到远程主机”并且错误发生在以下代码行: if (!ServiceDescription.CanRead(xmlreader))

但是如果我使用 Windows 应用程序中的相同代码连接到 Web 服务: http://www.w3schools.com/webservices/tempconvert.asmx?WSDL

它工作正常。我不确定如何解决这个问题。有没有其他人遇到同样的问题并能够解决它,然后会感谢一些正确方向的指示。

请您参考如下方法:

上面的代码需要多一点:

ServiceDescription serviceDescription; 
using (WebClient client = new WebClient {Proxy = new WebProxy(host, port)}) 
{ 
    using (Stream stream = client.OpenRead(webserviceUri)) 
    { 
        using (XmlReader xmlreader = XmlReader.Create(stream)) 
        { 
            serviceDescription = ServiceDescription.Read(xmlreader); 
        } 
    } 
} 

WebClient、Stream 和 XmlReader 都实现了 IDisposable,因此应该在 中创建using block ,当它们的使用仅在局部范围内时。此外,new XmlTextReader() 自 .NET 2.0 以来已被弃用,应替换为 XmlReader.Create。

(CW 的回答是因为它实际上只是一个格式化的评论)