我尝试从URL读取WSDL以动态生成WCF服务的代理。 这是我的代码:
XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(description))
if (ServiceDescription.CanRead(xmlTextReader))
{
...
}
我从方法XmlException
获得ServiceDescription.CanRead
。
错误按摩是" 根级别的数据无效。第1行,第1位"。
在IE中浏览WDSL网址,我可以在标记<wsdl:definitions ...> ... </wsdl:definitions>
之前的开头看到以下标记,但不会出现在Chrome中。
<?xml version="1.0" encoding="UTF-8"?>
这可能是问题吗?但我想ServiceDescription.CanRead
应该能够认识到这一点。任何提示都将不胜感激。
答案 0 :(得分:1)
尝试在问题中包含的第一行之前添加此内容:
var byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (description.StartsWith(byteOrderMarkUtf8))
{
var lastIndexOfUtf8 = byteOrderMarkUtf8.Length - 1;
description = description.Remove(0, lastIndexOfUtf8);
}
借鉴here。