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.

Siehe auch

Referenz

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute