2010-06-24 137 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。