Partager via


CA2212 : Ne marquez pas les composants pris en charge avec WebMethod

TypeName

DoNotMarkServicedComponentsWithWebMethod

CheckId

CA2212

Catégorie

Microsoft.Usage

Modification avec rupture

Oui

Cause

Une méthode dans un type qui hérite de System.EnterpriseServices.ServicedComponent est marquée avec System.Web.Services.WebMethodAttribute.

Description de la règle

WebMethodAttribute s'applique aux méthodes présentes dans un service Web XML créé en utilisant ASP.NET ; il permet l'appel à cette méthode depuis des clients Web distants. La méthode et la classe doivent être publiques et s'exécuter dans une application Web ASP.NET. Les types ServicedComponent sont hébergés par les applications COM+ et peuvent utiliser des services COM+. WebMethodAttribute n'est pas appliqué aux types ServicedComponent parce qu'ils ne sont pas prévus pour les mêmes scénarios. Spécifiquement, l'ajout de l'attribut à la méthode ServicedComponent ne permet pas d'appeler celle-ci depuis des clients Web distants. Sachant que WebMethodAttribute et une méthode ServicedComponent ont des comportements incompatibles et des exigences en matière de contexte et de flux de transactions, le comportement de la méthode est incorrect dans certains scénarios.

Comment corriger les violations

Pour corriger une violation de cette règle, supprimez l'attribut de la méthode ServicedComponent.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. Aucun scénario ne permet de combiner ces éléments de manière correcte.

Voir aussi

Référence

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute