2010-01-11 55 views
3

我必須調用在同一個網站上發佈的調用者aspx的web服務。如何在同一網站中調用Web服務?

當我嘗試「添加Web引用」時,編輯器不會顯示生成的命名空間中的webservice方法。

我必須使用「添加Web引用」還是有另一種方式,因爲web服務在同一個網站?

的Visual Studio 2005,C#

感謝,

愛德華

+3

出於興趣你爲什麼要這樣做?你能否不公開Web服務在內部使用的方法並直接調用它們? – 2010-01-11 16:30:37

+1

你說得對。 無需使用參考。 您的評論是我的回答。 謝謝。 – EduXavier 2010-01-11 16:42:13

回答

2

我用的方式,安迪·羅斯在評論中寫道:

實例化的web服務類,並直接調用方法,因爲它是項目(無需添加Web引用)內訪問。

0

有辦法欺騙它...您可以部署與Web服務應用程序,然後添加引用部署的位置。

另一個想法是,通過使用Ctrl-F5,從而無法正常啓動調試器爲好,然後添加到您的本地主機的引用剛開始它:/ ASMX

這將讓所有的中創建的配置信息你的web.config,當然,你可以根據需要稍後進行修改。

+0

但我看不到webservice中的方法。該聲明是: [的WebMethod] 公共BOOL的MyMethod() 但是,當我寫webref_namespace.webservice的MyMethod是不存在的。 – EduXavier 2010-01-11 16:33:41

0

的Web引用本身只是一個代理實現,以便VS可以假裝它知道你的web服務將如何調用它(所以你可以編譯),你其實可以沒有他們的代碼(雖然它是更難:))反應。

您有幾種選擇,我能想到的,如果你想這樣做:

  1. 創建Web服務作爲一個單獨的項目,但其部署到同一位置。您將在bin目錄中獲得混合二進制文件,但否則它應該可以正常工作。通過這種方式,您可以根據需要單獨部署每一個。
  2. 考慮將它們拆分爲兩個獨立的應用程序。這可能無法出於任何原因。
  3. 在您的主項目中創建一個存根web服務,該項目只包含函數定義(返回類型和參數)並進行部署,然後根據該項目生成web服務。然後,您可以根據原型開始您的開發並根據需要填充它
  4. 按照Chris的建議進行兩步式洗牌。首先創建一個你的web服務的近似表示,部署它。其次創建您的代理,創建您的Web應用程序,部署它並測試。必要時重複。

創建代理後,您可以更改它在代理綁定中指向的URL。

相關問題