簡體   English   中英

了解.NET Web服務

[英]Understanding .NET Web Services

我最近一直在研究.net Web服務(以前從未嘗試過),我想知道是否有人可以幫助我進一步了解他們的工作原理。

我主要關注的是asmx Web服務; 我知道這已經成為歷史,但是我只是想解決這個問題,然后我將繼續學習WCF,該書的閱讀能力更好/更豐富。

首先,真的,我一直看到Web服務代理一詞嗎? 這是什么,我的解決方案的哪一部分也涉及到這一點。 創建解決方案時,它將在binn目錄中生成一個.asmx文件和一個DLL文件。

如果用戶連接到asmx文件,DLL會做什么?

另外,我過去在以后的.net解決方案中引用了asmx Web服務,並在我的代碼中輕松使用了它們。 .net asmx Web服務是否可以從其他平台和語言(例如基於PHP或Java)中使用,還是僅限於.net?

抱歉,這是一個非常基本的問題……盡管id開始很簡單:)

Web服務代理是代碼中的一個類,代表本地或遠程托管的Web服務-它允許您的其他代碼與該服務進行交互,就好像它只是應用程序中的任何本地類一樣。 對於使用該服務的其他類,Web服務可以遠程托管的事實是完全不可見的,他們只知道一個類存在並且具有方法。 這些方法通常轉換為Web服務上的方法。

ASMX文件包含兩個元素,一個是代碼元素,就像ASPXASP.NET Web 窗體解決方案中具有ASPX.CS一樣。 在該示例中,當編譯代碼時,您仍然擁有ASPX ,但是ASPX.CS被編譯為DLL並由.NET運行時執行。 這與ASMX完全相同。

創建ASMX Web服務時,還會獲得一個自動生成的WSDL文件-可以通過在Web服務路徑后附加“?wsdl”來查看此文件。 WSDL是一個標准,並允許非.NET系統(在您的示例中為Java,PHP)使用Web服務。

希望這可以幫助!

好吧,您的問題是非常基本的,但是,沒有一個人天生就擁有所有的知識,當我遇到確切的問題時,我發現自己回首了幾年。


DLL的

我不知道您的編程世界是什么(PHP,Java等),但是在編程語言中(PHP是一種腳本語言,就像Classic ASP一樣),有些代碼是由某人編寫的,有時是我們編寫的,而我們只需“掛鈎”該代碼即可使用它。

在Java中,這是.jar文件,在.Net中是.dll ,它們代表我們可以訪問和使用的代碼。 我們稱其為參考。

每次編譯項目時,都會生成,壓縮和編譯代碼,並生成DLL。


代理

如前所述,如果您曾經在.NET中使用過Web服務,那么您知道您可能所做的就是添加一個Web引用 ,就是這樣,Web服務就可以使用了。

好了,該操作生成了一個Proxy ,該類是從Web服務定義(WSDL)中提取的,現在您可以通過簡單地調用它

myWebServiceClient ws = new myWebServiceClient();
int total = ws.Add(1, 2);

因此,在.NET中,您可以使用強類型對象,在開始編寫Web服務之前先生成一個代理,在Visual Studio中,此操作與向項目中添加Web引用相同。

您也可以通過調用命令行工具svcutil.exe手動生成代理。


跨平台

因為Web服務使用一種公共語言(在本例中為SOAP),所以任何平台都可以使用在任何其他平台中創建的Web服務,只要它們遵循SOAP標准即可。

如果您知道PHP,則可以輕松地在Visual Studio中創建Web服務,在該服務中生成asmx文件並由PHP中的任何SOAP庫使用它,只需指向創建的Web服務定義即可,例如

htttp://localhost:6543/myservice.asmx?wsdl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM