Answers:
尝试使用WSDL.exe,然后将生成的文件(.cs)包含到项目中。
启动Visual Studio命令提示符(在开始菜单的Visual Studio /工具下),然后键入
>wsdl.exe [path To Your WSDL File]
这将吐出一个文件,您将其复制/移动并包含在您的项目中。该文件包含一个类,该类是您的服务的代理,启动该类的实例,它将具有可即时设置的URL属性,以及一堆可调用的方法。它还将为通过服务接口传递的所有/任何复杂对象生成类。
使用WSDL.exe对我不起作用(给我有关缺失类型的错误),但是我能够在VS中的项目上单击鼠标右键,然后选择“添加服务引用”。我在“地址”字段中输入了wsdl文件的路径,然后单击“开始”。那似乎能够找到所有适当的类型并将类直接添加到我的项目中。
附带说明:如果您在本地拥有所有文件(不仅是wsdl文件,还包括xsd文件),则可以通过以下方式调用wsdl.exe:
wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl]
这样,wsdl.exe可以本地解析所有依赖项并正确生成代理类。
也许可以节省一些时间-解决无法在线提供服务时出现的“缺少类型”错误。
有一个Microsoft Doc用于WCF
从命令行创建代理。
你可以找到你的本地副本wsdl.exe
中类似这样的一个位置:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
(此处了解详情)
最后,您Command
应该看起来像这样:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe"
/language:CS /n:"My.Namespace" https://www.example.com/service/wsdl
将文件保存到磁盘上,然后使用以下URL:
file://your_path/your_file.wsdl
由于Web服务的真实绑定URL位于文件中,因此可以从本地计算机执行以下简单步骤:
1)将文件保存到本地计算机,例如:
C:\Documents and Settings\[user]\Desktop\Webservice1.asmx
2)在Visual Studio中,右键单击您的项目>选择“添加Web引用”,将打开一个对话框。
3)在“ URL”框中,将本地文件位置复制到C:\ Documents and Settings [user] \ Desktop \ Webservice1.asmx上方,单击“下一步”。
4)现在您将看到功能出现,选择您的名称作为参考,单击添加参考
5)您完成了!您可以开始将其用作应用程序中的命名空间,不必担心您使用了本地文件,因为无论如何,该服务的真实URL位于Binding部分的文件中。