WCF-対Webサービス

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

  • Attributes − WCFサービスはServiceContract属性とOperationContract属性によって定義されますが、WebサービスはWebService属性とWebMethod属性によって定義されます。

  • Protocols − WCFは、HTTP、名前付きパイプ、TCP、MSMQなどのさまざまなプロトコルをサポートしますが、WebサービスはHTTPプロトコルのみをサポートします。

  • Hosting Mechanisms − WCFホスティングには、IIS(インターネットインフォメーションサービス)、WAS(Windowsアクティベーションサービス)、セルフホスティング、Windowsサービスなど、さまざまなアクティベーションメカニズムがありますが、WebサービスはIISによってのみホストされます。

  • Services − WCFは堅牢なセキュリティ、信頼できるメッセージング、トランザクション、および相互運用性をサポートしますが、Webサービスはセキュリティサービスのみをサポートします。

  • Serializer − WCFはSystem.Runtime.Serializationを使用してDataContractシリアライザーをサポートしますが、WebサービスはSystem.Xml.Serializationを使用してXMLシリアライザーをサポートします。

  • Tools − ServiceMetadataツール(svcutil.exe)はWCFサービスのクライアント生成に使用され、WSDL.EXEツールはWebサービスのクライアント生成に使用されます。

  • Exception Handling− WCFでは、未処理の例外は、FaultContractを利用することでより適切に処理されます。これらは、SOAP障害として、Webサービスのようにクライアントに返されません。

  • Hash Table − WCFでハッシュテーブルをシリアル化することは可能ですが、Webサービスではそうではありません。

  • Bindings − WCFは、BasicHttpBinding、WSDualHttpBinding、WSHttpBindingなどのいくつかのタイプのバインディングをサポートしますが、WebサービスはSOAPまたはXMLのみをサポートします。

  • Multithreading − WCFはServiceBehaviorクラスを使用したマルチスレッドをサポートしていますが、これはWebサービスではサポートされていません。

  • Duplex Service Operations − WCFは、一方向および要求/応答サービス操作のサポートとは別に、二重サービス操作をサポートしますが、Webサービスは二重サービス操作をサポートしません。