簡體   English   中英

asp.net web 方法和 wcf 服務有什么區別?

[英]What is the difference between an asp.net web method and a wcf service?

我是 .Net 的新手,不明白其中的區別。 有人可以指出我正確的方向嗎?

ASP.NET Web 服務是為構建使用 HTTP 上的簡單對象訪問協議 (SOAP) 發送和接收消息的應用程序而開發的。

WCF 用於使 .NET Framework 應用程序能夠與其他軟件實體交換消息。 默認情況下使用 SOAP,但消息可以采用任何格式,並使用任何傳輸協議進行傳送。

您可以將 ASP.NET Web 服務視為 WCF 服務的子集。

是比較兩個框架的鏈接。

很容易知道這些差異。

ASP.NET Web Method 被稱為 ASMX [因為文件擴展名](查看 4GuysFromRolla 關於這個,他們有一個很好的教程

該技術使您可以將功能公開為 Web 服務,以便您可以從任何地方連接並使用它。 但是......你不能保護服務器和客戶端之間的數據,你可以清楚地發送大文件並知道發生了什么等等......

[注意] 您可以使用證書來保護對 Web 服務的訪問,但這很復雜但通常,在 ASMX 中我們使用用戶名/密碼。

在 WCF 中,您在 Web 服務方面處於不同的世界,這是 .NET 中暴露服務的最佳技術(您能看出區別嗎...服務!不是Web 服務),WCF 不需要 IIS 來運行,它可以在服務器上作為系統服務運行,使用控制台環境(如命令行)等,所以我們說 WCF 是服務而不是 Web 服務。 記住ASMX 需要IIS 才能運行。

使用 WCF,您可以使用 SSL 來加密通信(要在 ASMX 中執行此操作,您需要使用WSE - Web 服務增強功能),您可以安全地發送大文件(要在 ASMX 中執行此操作,您需要使用MTOM - 消息傳輸優化機制) )。

您只需更改一行代碼即可設置傳輸首選項,安全性要高得多,等等:)

希望您對此有一個更好的總體概述,但還有更多。

底線:要公開不需要保護的 Web 服務,可以使用 ASMX,完全沒問題,但是如果需要以某種方式保護通信,請在 WCF 中進行!

鏈接您可以在此處閱讀兩種服務之間的一些性能比較

它們是用於編寫服務的兩種不同框架。 WCF 通常更靈活,並為使用的協議、服務的托管方式和各種安全選項提供可配置選項。 ASMX 提供基於 SOAP 的服務。 一般來說,WCF 的性能也更高。 一般來說,ASMX 更容易使用,而且學習曲線也更短。

是有關該主題的 MSDN 論壇討論。 以下是ASMXWCF 的入門頁面。

除了上述響應之外,還創建了 WCF 以替換 .NET 3.0 及更高版本中的 .NET Remoting。 除了 SOAP、REST、POX 等各種格式(例如 XML 和 JSON)的 Web 服務,WCF 還提供 MSMQ 和命名管道。 如上所述,ASMX 僅提供基於 SOAP 的 XML Web 服務。

對於其他類型的通信協議,您需要深入研究.NET Remoting 有關其他信息,您應該查看Pro C# 2008 和 .NET 3.5 Framework 這是一個很好的資源,您可以從以前的書籍中獲取涵蓋 .NET Remoting 和其他替換功能的章節。

這是一個新的、巨大的差異:Microsoft 現在將 ASMX Web 服務視為“遺留”技術。 請參閱“使用 ASP.NET 和 XML Web 服務客戶端創建的 XML Web 服務”。

網頁服務

  1. 它只能通過 HTTP 訪問
  2. 它適用於無狀態環境

周轉基金

WCF 很靈活,因為它的服務可以托管在不同類型的應用程序中。 下面列出了托管 WCF 服務的幾種常見方案:

  • 信息系統
  • 曾是
  • 自托管
  • 托管 Windows 服務

我有同樣的問題。

我發現Microsoft Windows Communication Foundation Step by Step這本書非常好。

如果您只想使用 WCF 完成傳統的 Web 服務,那么該書的第 1 章將向您展示如何做到這一點(編寫服務、測試、部署、使用服務)。

它是為 VS2005 編寫的,但我使用的是 vs2008,發現它更容易。

WCF 還有很多內容,但那本書是一個好的開始。

它們是兩種不同的東西。 WCF 是一個更通用的框架,通過它您可以編寫一個服務類型組件並以多種方式部署它(甚至作為 Asp.Net Web 服務)。

這里有一個關於這個的簡短主題http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/

下面列出了 Web 服務和 WCF 之間的主要區別。

Web 服務:Web 服務是一種旨在通過 Internet 直接與其他應用程序交互的應用程序。

1) [WebService] 和 [WebMethod] 屬性定義了 Web 服務和方法。
2) 它只能通過 HTTP 訪問。
3) 托管在 IIS 中。
4) 支持安全服務。
5)不能是多線程的。
6) 只使用過肥皂或 XML。
7) System.Xml.serialization 命名空間用於序列化

WCF :Windows Communication Foundation(代號為 Indigo)是一個用於構建、配置和部署網絡分布式服務的編程平台和運行時系統。

1) [ServiceContract] 和 [OperationContract] 屬性定義了 Web 服務和方法。
2)通過HTTP、TCP、MSMQ、P2P、命名管道訪問
3) 托管在 IIS、自托管、WAS 和 Windows 服務中。
4) 可以通過服務行為類進行多線程。
5) System.Runtime.Serialization 命名空間用於序列化
6) 支持不同類型的綁定,如 BasicHttpBinding、WSHttpBinding、WSDualHttpBinding 等。
7) 支持安全服務、可靠消息、事務、AJAX 和 REST 支持

暫無
暫無

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

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