CA2212: サービス コンポーネントを WebMethod に設定しません
TypeName |
DoNotMarkServicedComponentsWithWebMethod |
CheckId |
CA2212 |
カテゴリ |
Microsoft.Usage |
互換性に影響する変更点 |
あり |
原因
System.EnterpriseServices.ServicedComponent から継承された型のメソッドが、System.Web.Services.WebMethodAttribute でマークされています。
規則の説明
WebMethodAttribute は、ASP.NET を使用して作成された XML Web サービス内のメソッドに適用されます。これによって、メソッドをリモートの Web クライアントから呼び出すことができるようになります。 メソッドとクラスはパブリックにし、ASP.NET Web アプリケーションで実行する必要があります。 ServicedComponent 型は、COM+ アプリケーションでホストされ、COM+ サービスを使用できます。 WebMethodAttribute は ServicedComponent 型に適用されません。これは用途が異なるためです。 特に、ServicedComponent メソッドにこの属性を追加しても、リモートの Web クライアントからメソッドを呼び出すことができない点が異なります。 WebMethodAttribute と ServicedComponent メソッドは、コンテキストおよびトランザクション フローの動作および要件が衝突するため、状況によってこのメソッドは正常に動作しません。
違反の修正方法
この規則違反を修正するには、ServicedComponent メソッドからこの属性を削除します。
警告を抑制する状況
この規則による警告は抑制しないでください。 これらの要素を結合する処理が適切な場合はありません。