我正在尝试在Visual Studio 2008中向ASP.NET 2.0应用程序添加Web引用。
但是,生成的代理类不包括BeginXXXX和EndXXXX方法。
如何生成这些内容?我是否需要手动使用wsdl.exe?
(顺便说一下,在ASP.NET 3.5应用程序中,“添加服务引用”框中有一个选项,允许我指定应该生成异步方法。但是,我仅限于ASP.NET 2.0实现。)
答案 0 :(得分:1)
如果您使用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
答案 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对象的元数据为这些方法提供接口。
如果在文件中编写服务实例化代码,则应该能够右键单击变量的类型声明并选择“转到定义”。这将带您进入添加服务时生成的元数据。