尝试从此WebService生成代理时(http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl)我从svcutil收到此错误:
错误:无法从中获取元数据 http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
如果这是Windows(R)通信 您拥有的基础服务 访问,请检查您有 启用了元数据发布 指定地址。帮助启用 元数据发布,请参阅 MSDN文档在 http://go.microsoft.com/fwlink/?LinkId=65455
WS-Metadata Exchange错误 URI:http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
Metadata contains a reference that cannot be resolved:
'http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl'。
The content type text/xml; charset=utf-8 of the response message
与内容类型不匹配 绑定(application / soap + xml; 字符集= UTF-8)。如果使用自定义 编码器,请确保 IsContentTypeSupported方法是 实施得当。第553号 响应的字节是:'
NS1:Client.NoSOAPAction 没有SOAPAction 头球攻门! usalwsc01 ”。The remote server returned an error: (500) Internal Server Error.
HTTP GET错误 URI:http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
The document at the url http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
未被识别为已知文件 类型。每个错误消息 已知类型可以帮助您修复 问题: - 来自'XML Schema'的报告是'W3C XML Schema的根元素 应该和它的命名空间 应该 'http://www.w3.org/2001/XMLSchema'。“。 - 来自“DISCO文档”的报告是“URL上的发现文档” http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl 无法找到。' - 无法识别文档格式。 - 来自'WSDL Document'的报告是'XML文档中存在错误 (242,18)。'。
- 未定义命名空间前缀'impl:wb'。
我用这些参数调用了svcutil:
svcutil / n: *,WB.Client /et:WB.Client.WSResultObject / o:Client \ WBServices / noConfig http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl
有谁知道我该怎么做才能生成代理?我无法在服务器端更改服务。
答案 0 :(得分:3)
问题是服务使用绑定的命名约定,这与svcutil不兼容。你可以按照以下方式解决这个问题:
从用于wsdl:binding的名称中删除名称空间前缀,即更改
name="wb:wsclocks-inboundSoapBinding"
命名= “wsclocks-inboundSoapBinding”强>
更改wsdl:port属性的绑定属性以匹配,并从name属性的值中删除名称空间前缀,因此它只是 wsclocks-inbound 。
然后运行svcutil <wsdl-file-path> /o:Client\WBServices /noConfig