我尝试生成WSDL,然后使用客户端手动在WSDL中找到每个XSD.该服务目前只在我的本地主机上,尚未发布.
客户端收到以下错误:
该文件已被理解,但无法处理.WSDL文档包含无法解析的链接.下载'http:// localhost:xxxx/MyService.svc?xsd = xsd0'时出错.无法连接到远程服务器无法建立连接,因为目标计算机主动拒绝它127.0.0.1:xxxx
如何生成和共享服务WSDL和XSD,以便他们可以开始编写客户端(无需访问服务atm?
编辑 WSDL/XSD中与这些问题相关的问题
WSDL
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd0"
namespace="http://tempuri.org/"/>
<xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd1"
namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
<xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd2"
namespace="**MYNAMESPACE**"/>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
XSD
<xs:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd1"
namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
Run Code Online (Sandbox Code Playgroud)
编辑2:
感谢@The Indian Programmmer
我能够生成一个代理类来使用此命令进行编程:
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\svcutil.exe" -noconfig -namespace:*,SERVICE.INTERFACE.NAMESPACE -serializer:datacontractserializer https://My-PC/SvrLocation/MyService.svc?wsdl
(托管在本地IIS中)
首先通过运行您的服务浏览到您的wsdl.
然后单独浏览到WSDL中的所有xsd,并将它们保存为xsd文件.
使用新的xsd相对路径更新wsdl ..只需用名称替换xsd的整个链接.
Replace http://localhost:xxxx/MyService.svc?xsd=xsd0 with respective FileName
<xsd:schema targetNamespace="namespace">
<xsd:import schemaLocation="Messages.xsd" namespace="namespace"/>
<xsd:import schemaLocation="DomainTypes.xsd" namespace="namespace"/>
<xsd:import schemaLocation="StreamBody.xsd" namespace="namespace"/>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
更新:如何生成代理文件
svcutil -noconfig -namespace:*,ServiceNameSpace -serializer:datacontractserializer "Service.wsdl" "DomainTypes.xsd" "Messages.xsd" "StreamBody.xsd"
Run Code Online (Sandbox Code Playgroud)
所有文件都应位于同一文件夹中.
归档时间: |
|
查看次数: |
17513 次 |
最近记录: |