2010-06-24 136 views
0

当使用HTTPWebRequest对象来调用Web服务并提供wsdl参数时,我得到了描述页面。但是,当我尝试调用其中一个使用显示为soapAction的引用的方法时,我得到(404)Not Found。如何使用HTTPWebRequest在Web服务上调用Web方法?

req = Net.WebRequest.Create("http://mysite.com/DS/StaffList") ' fails ' 

在我失踪的方法应该被调用的方式有差异吗?我误解了地址的结构?

注:该服务工作正常,如果我在Visual Studio项目设置标准的Web引用,并调用WebService对象的方法,所以服务本身可用和工作。

回答

1

为了调用SOAP Web服务,您将需要发布一个XML request in a SOAP envelope。这就是在幕后使用WebReference生成的类。除非您有一个令人信服的理由,否则不应该使用HttpWebRequest等低级别类调用SOAP Web服务,而应使用Add WebReference从WSDL生成代理。

看看this MSDN article。另请注意,经典的ASMX Web服务现在被视为已弃用的技术,应替换为WCF

0

您正在尝试预WCF Web服务。 如果迁移到WCF服务是一个选项,您可以将服务映射到RESTful enpoints

REST(代表性状态传输)被使用(在其他选项中)来描述函数调用中的URL结构,无需额外的内容,如SOAP。