我正在尝试在 Visual Studio 2008 中添加对 ASP.NET 2.0 应用程序的 Web 引用。
但是,生成的代理类不包括 BeginXXXX 和 EndXXXX 方法。
我怎样才能生成这些?我需要手动使用 wsdl.exe 吗?
(顺便说一句,在 ASP.NET 3.5 应用程序中,“添加服务引用”框中有一个选项,可让我指定应生成 Async 方法。但是,我仅限于 ASP.NET 2.0 实现)。
我正在尝试在 Visual Studio 2008 中添加对 ASP.NET 2.0 应用程序的 Web 引用。
但是,生成的代理类不包括 BeginXXXX 和 EndXXXX 方法。
我怎样才能生成这些?我需要手动使用 wsdl.exe 吗?
(顺便说一句,在 ASP.NET 3.5 应用程序中,“添加服务引用”框中有一个选项,可让我指定应生成 Async 方法。但是,我仅限于 ASP.NET 2.0 实现)。
如果您使用 Visual Studio 的 2008 Add Web Reference
GUI,它将不会生成BeginXXX
和EndXXX
方法。您可能需要直接调用wsdl.exe(来自 Visual Studio 2008 命令提示符):
wsdl.exe http://www.example.com/someservice.asmx?wsdl
并包含生成的.cs
文件,其中包含代理类以及项目的相应方法BeginXXX
和EndXXX
方法。
注意:wsdl.exe
可能位于C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin
从 2.0 开始的 Web 服务通过事件处理程序生成不同的异步方法。Begin/End 方法实际上不需要完成异步代理: http: //www.codeguru.com/csharp/csharp/cs_webservices/security/article.php/c9179__1/
但是,这些方法会在 GUI 中自动生成。Web 服务的本质应该是通过 SoapHttpClientProtocol 对象的元数据提供与这些方法的接口。
如果您在文件中编写服务实例化代码,您应该能够右键单击变量的类型声明并选择“转到定义”。这将带您进入添加服务时生成的元数据。