.NET WebService Studio 引用WSDL文件报错。错误信息问题补充中贴上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET WebService Studio 引用WSDL文件报错。错误信息问题补充中贴上相关的知识,希望对你有一定的参考价值。

该WSDL文件为另一个项目组的人给的,用SOAPUI 可以正常使用,但是没法生成客户端代码,用WSDL.EXE命令行生成客户端代码也会失败,可以用CXF生成JAVA代码。
在(398,5)处未发现wsdl异常。
----错误信息
System.InvalidOperationException: XML 文档(398, 5)中有错误。 ---> System.ArgumentNullException: 值不能为空。
参数名: name
在 System.Xml.XmlConvert.VerifyNCName(String name)
在 System.Xml.XmlQualifiedName.Verify()
在 System.Xml.Schema.Preprocessor.ValidateQNameAttribute(XmlSchemaObject xso, String attributeName, XmlQualifiedName value)
在 System.Xml.Schema.Preprocessor.PreprocessSimpleType(XmlSchemaSimpleType simpleType, Boolean local)
在 System.Xml.Schema.Preprocessor.Preprocess(XmlSchema schema, String targetNamespace, ArrayList imports)
在 System.Xml.Schema.Preprocessor.Execute(XmlSchema schema, String targetNamespace, Boolean loadExternals)
在 System.Xml.Schema.XmlSchemaSet.PreprocessSchema(XmlSchema& schema, String targetNamespace)
在 System.Xml.Schema.XmlSchemaSet.Add(String targetNamespace, XmlSchema schema)
在 System.Xml.Schema.XmlSchemaSet.Add(XmlSchema schema)
在 System.Xml.Serialization.XmlSchemas.AddName(XmlSchema schema)
在 System.Xml.Serialization.XmlSchemas.OnInsert(Int32 index, Object value)
在 System.Collections.CollectionBase.System.Collections.IList.Add(Object value)
在 System.Xml.Serialization.XmlSchemas.Add(XmlSchema schema)
在 System.Web.Services.Description.ServiceDescriptionSerializationReader.Read67_Types(Boolean isNullable, Boolean checkType)
在 System.Web.Services.Description.ServiceDescriptionSerializationReader.Read124_ServiceDescription(Boolean isNullable, Boolean checkType)
在 System.Web.Services.Description.ServiceDescriptionSerializationReader.Read125_definitions()
在 System.Web.Services.Description.ServiceDescription.ServiceDescriptionSerializer.Deserialize(XmlSerializationReader reader)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)

--- 内部异常堆栈跟踪的结尾 ---
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader)
在 System.Web.Services.Description.ServiceDescription.Read(XmlReader reader, Boolean validate)
在 System.Web.Services.Description.ServiceDescription.Read(Stream stream, Boolean validate)
在 System.Web.Services.Description.ServiceDescription.Read(Stream stream)
在 WebServiceStudio.Wsdl.ReadLocalDocument(Boolean isSchema, String path)
在 WebServiceStudio.Wsdl.ProcessLocalPaths(DiscoveryClientProtocol client, StringCollection localPaths, XmlSchemas schemas, ServiceDescriptionCollection descriptions)
在 WebServiceStudio.Wsdl.Generate()
WSDL中的路径有问题,没法再VS中直接做 服务引用。 该类的 WSDL文件 已经有几个成功生成客户端代理代码

对方提供的WSDL文件是 SAP PI 向导生成

应该是对方提供的WSDL有问题。 参考技术A 不妨用xml 解析! 参考技术B 我只能说这是个悲剧 居然收到你提的问题了 。。 参考技术C 你把wsdl帖上来追问

这个不能发,你遇到过类似的情况?

追答

vs的命令提示符下,有个wsdl命令。可以生成客户端代理。你试一下。

如何在 Visual Studio 2008 中添加 /_vti_bin/Admin.asmx webservice 作为服务引用

【中文标题】如何在 Visual Studio 2008 中添加 /_vti_bin/Admin.asmx webservice 作为服务引用【英文标题】:How to add the /_vti_bin/Admin.asmx webservice as a service reference in Visual Studio 2008 【发布时间】:2009-11-20 16:48:58 【问题描述】:

我正在尝试在控制台应用程序中使用 SharePoint 2007 的管理 Web 服务。所以我向我的项目添加了一个新的服务引用,指向http://<central administration>/_vti_bin/Admin.asmx。但是它没有创建代理类,而是以错误结束。关于错误信息,由于身份验证问题,无法访问该服务。

HTTP 请求未经授权 客户端认证方案 '匿名的'。身份验证标头 从服务器收到的是 '协商,NTLM'。

还尝试通过网络浏览器访问该页面会导致重定向到错误页面。我可以通过浏览器和 Visual Studio 访问所有其他网络服务。

我还查看了添加服务参考菜单,但找不到传递任何凭据的选项。

我做错了什么?

【问题讨论】:

【参考方案1】:

您应该使用正确的网址。尝试使用以下内容:

http://CentralAdministration:Port/_vti_adm/Admin.asmx

看看Nick Swan's blog。

【讨论】:

【参考方案2】:

尝试在 IIS 中启用匿名访问并启用集成 Windows 身份验证。

【讨论】:

集成 Windows 身份验证已启用,启用匿名访问无法解决问题。

以上是关于.NET WebService Studio 引用WSDL文件报错。错误信息问题补充中贴上的主要内容,如果未能解决你的问题,请参考以下文章

解决.NET WebService引用后添加HTTP Header的问题

vb.net如何动态调用WebService接口啊

动态调用webservice

不添加引用,动态调用WebService

visio studio2010 在win10下 开发webservice接口以及部署调用

winform调用webservice假死怎么解决