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.