2011-05-02 103 views
2

我目前有一個項目,不使用Visual Studio,我們用紅寶石編譯。我想要使​​用遠程Web服務,但是我找不到任何通過代碼執行此操作的人。我知道通過Visual Studio非常簡單,但連接到Web服務的語法是什麼?參考web服務沒有Visual Studio

+0

這令人困惑。爲什麼有一個Ruby標籤? – 2011-05-02 18:44:06

+0

@theTinMan - 大概是「我們用ruby編譯」 – 2011-05-02 18:45:06

+0

我添加了標籤,因爲他想從Ruby應用程序調用.net服務。可能應該添加.net其實... – CodeRedick 2011-05-02 18:46:41

回答

1

您可以在命令行上使用wsdl.exe(Web參考),wsewsdl3.exe(WSE3 Web參考)或svcutil.exe(WCF服務參考)執行此操作。這將消耗WSDL/MEX並生成您的代理層作爲C#類文件。

+0

我剛剛意識到這是正確的答案。謝謝。我不知道一個完整的DLL必須生成。 – JohnathanKong 2011-05-02 19:47:53

+0

@JohnathanKong它沒有;您只需在您的代碼中使用該C#文件 – 2011-05-02 19:49:23

0

假設你是在談論一個ASMX Web服務:

VS創建一個本地代理,爲您解決Web服務。缺席的是跟一個Web服務最簡單的方法是通過使HTTPGET/HttpPost在Web服務的Web.config - 那麼你可以使用標準的HTTP請求:

<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
    </protocols> 
</webServices> 

這樣,您就可以撥打方法Bar()通過向您的網絡服務Foo發送HTTP GET請求至http://server/Foo.asmx/Bar

+0

那我該如何致電該服務?我希望能夠像導入一個dll一樣,這是它在Visual Studio方面的工作原理。 – JohnathanKong 2011-05-02 18:37:14

+0

@JohnathanKong:在Visual Studio中,添加引用時不僅僅是添加引用。它在幕後生成一堆代碼,用WebClient來連接方法調用。您需要編寫代碼來連接到這些HTTP URL並處理數據結果。 – mellamokb 2011-05-02 18:41:08

+0

這是我正在尋找的代碼。有很多由Visual Studio生成的代碼?我認爲它就像java,我會用CreateService(「serviceURL」)來創建一個服務的實例,並使用返回的對象來調用每個方法。 – JohnathanKong 2011-05-02 19:19:01