将 Soapsuds.exe 用于远程处理

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

您可以使用 Soapsuds.exe 生成程序集或源代码并令其包含调用远程对象所需的元数据。

xse48s01.note(zh-cn,VS.100).gif注意:
Soapsuds.exe 仅适用于使用 HttpChannel 的远程对象。

若要生成程序集,请键入类似于以下内容的命令:

soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -oa:MyProxy.dll

其中,远程对象承载于名为 SomeServer 的计算机上,该对象的 URL 是 MyObject.rem。请注意,应将 ?wsdl 添加到 URL 的末尾。这是 Soapsuds.exe 正常运行所必需的。随后,您可以使用生成的 MyProxy.dll 并在客户端应用程序中引用它。

若要生成源代码,请键入类似于以下内容的命令:

soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -gc

其中,远程对象承载于名为 SomeServer 的计算机上,该对象的 URL 是 MyObject.rem。请注意,应将 ?wsdl 添加到 URL 的末尾。这是 Soapsuds.exe 正常运行所必需的。随后,您可以将生成的 Server.cs and 添加到客户端应用程序项目中。这样可以获得额外的好处,即无需在客户端应用程序中传送单独的代理程序集。

无论输出为何种类型(程序集或源代码),Soapsuds.exe 在默认情况下都会生成所谓的预包装代理。预包装代理是从 RemotingClientProxy 派生的类。远程对象的 URL 将被硬编码为此派生类。另外,您也可以在命令行上指定 -nowp,以生成非预包装代理。为非预包装代理生成的类是一个空类。若要查看预包装代理和非预包装代理之间的区别,可以为远程对象生成两次源代码,一次使用 -nowp,而另一次不使用此参数(应确保重命名生成的 .cs 文件,否则当再次运行 Soapsuds.exe 时,它将被覆盖)。由于不应对远程对象的 URL 进行硬编码,因此必须生成非预包装代理。

有关 soapsuds.exe 命令行选项的更多信息,请参见 Soapsuds Tool (Soapsuds.exe)

另请参见

其他资源

高级远程处理