CA2212: サービス コンポーネントを WebMethod に設定しません

Item [値]
規則 ID 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 クライアントから呼び出すことができなくなります。 WebMethodAttribute および ServicedComponent メソッドは、コンテキストおよびトランザクション フローの動作および要件が競合するため、シナリオによってはメソッドが正常に動作しません。

違反の修正方法

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

どのようなときに警告を抑制するか

この規則による警告は抑制しないでください。 これらの要素の組み合わせが適切なシナリオはありません。

関連項目