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

Élément Valeur
ID de la règle CA2212
Category Microsoft.Usage
Modification avec rupture Rupture

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 au sein d’un service Web XML qui ont été créées à l’aide de ASP.NET ; elle permet d’appeler la méthode à partir de clients Web distants. La méthode et la classe doivent être publiques et exécutées dans une application Web ASP.NET. Les types ServicedComponent sont hébergés par des applications COM+ et peuvent utiliser les services COM+. WebMethodAttribute n’est pas appliqué aux types ServicedComponent, car ils ne sont pas destinés aux mêmes scénarios. Plus précisément, l’ajout de l’attribut à la méthode ServicedComponent ne permet pas d’appeler la méthode à partir de 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. Il n’existe aucun scénario où la combinaison de ces éléments est correcte.

Voir aussi