ServicedComponents nicht mit WebMethod markieren
Aktualisiert: November 2007
TypeName |
DoNotMarkServicedComponentsWithWebMethod |
CheckId |
CA2212 |
Kategorie |
Microsoft.Usage |
Unterbrechende Änderung |
Breaking |
Ursache
Eine Methode in einem Typ, der von System.EnterpriseServices.ServicedComponent erbt, wird mit System.Web.Services.WebMethodAttribute markiert.
Regelbeschreibung
WebMethodAttribute wird auf Methoden in einem XML-Webdienst angewendet, die mit ASP.NET erstellt wurden. Dadurch kann die Methode durch Remotewebclients aufgerufen werden. Die Methode und die Klasse müssen öffentlich und in einer ASP.NET-Webanwendung ausführbar sein. ServicedComponent-Typen werden von COM+-Anwendungen gehostet und können COM+-Dienste verwenden. WebMethodAttribute wird auf ServicedComponent-Typen nicht angewendet, da diese nicht für die gleichen Szenarien vorgesehen sind. Insbesondere bewirkt das Hinzufügen des Attributs zur ServicedComponent-Methode nicht, dass die Methode von Remotewebclients aufgerufen werden kann. Da das Verhalten von WebMethodAttribute und einer ServicedComponent-Methode sowie deren Anforderungen an den Kontext sowie den Transaktionsablauf zu Konflikten führen, ist das Verhalten der Methode in bestimmten Szenarien fehlerhaft.
Behandlung von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, entfernen Sie das Attribut aus der ServicedComponent-Methode.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel. Es gibt keine Szenarien, in denen eine Kombination dieser Elemente richtig ist.