Wcf-versus-web-service

提供:Dev Guides
移動先:案内検索

WCF-対Webサービス

WCFとWebサービスの間に存在するいくつかの大きな違いがあります。以下にリストします。

  • 属性-WCFサービスはServiceContractおよびOperationContract属性によって定義されますが、WebサービスはWebServiceおよびWebMethod属性によって定義されます。
  • プロトコル-WCFは、HTTP、名前付きパイプ、TCP、MSMQなどのさまざまなプロトコルをサポートしていますが、WebサービスはHTTPプロトコルのみをサポートしています。
  • ホスティングメカニズム-WCFホスティングにはさまざまなアクティベーションメカニズムがあります。つまり、IIS(インターネットインフォメーションサービス)、WAS(Windowsアクティベーションサービス)、セルフホスティング、およびWindowsサービスですが、WebサービスはIISによってのみホストされます。
  • サービス-WCFは堅牢なセキュリティ、信頼できるメッセージング、トランザクション、相互運用性をサポートしますが、Webサービスはセキュリティサービスのみをサポートします。
  • Serializer -WCFはSystem.Runtime.Serializationを使用してDataContractシリアライザーをサポートしますが、WebサービスはSystem.Xml.Serializationを使用してXMLシリアライザーをサポートします。
  • ツール-ServiceMetadataツール(svcutil.exe)はWCFサービスのクライアント生成に使用され、WSDL.EXEツールはWebサービスのクライアント生成に使用されます。
  • 例外処理-WCFでは、FaultContractを使用することにより、未処理の例外がより適切に処理されます。 SOAPエラーとしてWebサービスのようにクライアントに返されません。
  • ハッシュテーブル-WCFでハッシュテーブルをシリアル化することは可能ですが、Webサービスではそうではありません。
  • バインディング-WCFは、BasicHttpBinding、WSDualHttpBinding、WSHttpBindingなどのいくつかのタイプのバインディングをサポートしますが、WebサービスはSOAPまたはXMLのみをサポートします。
  • マルチスレッド-WCFはServiceBehaviorクラスを使用してマルチスレッドをサポートしていますが、これはWebサービスではサポートされていません。
  • 二重サービス操作-WCFは、一方向および要求応答サービス操作のサポートとは別に二重サービス操作をサポートしますが、Webサービスは二重サービス操作をサポートしません。