繁体   English   中英

如何从C#中的URL读取WCF服务的WSDL

[英]How to read the WSDL of a WCF service from a URL in C#

我正在尝试从URL读取WSDL,以动态生成WCF服务的代理。 这是我的代码:

XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(description)) 
if (ServiceDescription.CanRead(xmlTextReader))
{
    ...
}

我从方法ServiceDescription.CanRead获得XmlException
错误消息为“ 根级别的数据无效。第1行,位置1 ”。

浏览IE中的WDSL URL,我可以在标签<wsdl:definitions ...> ... </wsdl:definitions>之前的开头看到以下标签,该标签没有出现在chrome中。

<?xml version="1.0" encoding="UTF-8"?>

这可能是问题吗? 但我认为ServiceDescription.CanRead应该能够识别出来。 任何提示将不胜感激。

尝试在问题中包含的第一行之前添加以下内容:

var byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (description.StartsWith(byteOrderMarkUtf8))
{
    var lastIndexOfUtf8 = byteOrderMarkUtf8.Length - 1;
    description = description.Remove(0, lastIndexOfUtf8);
}

这里借来的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM