ASP.NET 2.0 - 添加Web引用不会生成异步代理代码

时间:2010-01-28 01:02:31

标签: asp.net visual-studio-2008 web-services wsdl.exe

我正在尝试在Visual Studio 2008中向ASP.NET 2.0应用程序添加Web引用。

但是,生成的代理类不包括BeginXXXX和EndXXXX方法。

如何生成这些内容?我是否需要手动使用wsdl.exe?

(顺便说一下,在ASP.NET 3.5应用程序中,“添加服务引用”框中有一个选项,允许我指定应该生成异步方法。但是,我仅限于ASP.NET 2.0实现。)

2 个答案:

答案 0 :(得分:1)

如果您使用Visual Studio的2008 Add Web Reference GUI,则不会生成BeginXXXEndXXX方法。您可能需要直接调用wsdl.exe(来自Visual Studio 2008命令提示符):

wsdl.exe http://www.example.com/someservice.asmx?wsdl

并在项目中包含生成的.cs文件,其中包含代理类以及相应的BeginXXXEndXXX方法。

注意:wsdl.exe可能位于C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin

答案 1 :(得分:0)

来自2.0的Web服务通过事件处理程序生成不同的ASync方法。实际上不需要Begin / End方法来完成ASync代理:http://www.codeguru.com/csharp/csharp/cs_webservices/security/article.php/c9179__1/

但是,这些方法在GUI中自动生成。 Web服务的性质应该通过SoapHttpClientProtocol对象的元数据为这些方法提供接口。

如果在文件中编写服务实例化代码,则应该能够右键单击变量的类型声明并选择“转到定义”。这将带您进入添加服务时生成的元数据。