次の方法で共有


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+ サービスを使用できます。WebMethodAttributeServicedComponent 型に適用されません。これは用途が異なるためです。特に、ServicedComponent メソッドにこの属性を追加しても、リモートの Web クライアントからメソッドを呼び出すことができない点が異なります。WebMethodAttributeServicedComponent メソッドは、コンテキストおよびトランザクション フローの動作および要件が衝突するため、状況によってこのメソッドは正常に動作しません。

違反の修正方法

この規則違反を修正するには、ServicedComponent メソッドからこの属性を削除します。

警告を抑制する状況

この規則による警告は抑制しないでください。これらの要素を結合する処理が適切な場合はありません。

参照

関連項目

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute