CA2212: Non contrassegnare componenti serviti con WebMethod
TypeName |
DoNotMarkServicedComponentsWithWebMethod |
CheckId |
CA2212 |
Category |
Microsoft.Usage |
Breaking Change |
Breaking |
Causa
Un metodo in un tipo che eredita da System.EnterpriseServices.ServicedComponent è contrassegnato con System.Web.Services.WebMethodAttribute.
Descrizione della regola
WebMethodAttribute si applica ai metodi all'interno di un servizio Web XML creati mediante ASP.NET. Mediante questo oggetto il metodo potrà essere chiamato da client Web remoti.È necessario che il metodo e la classe siano pubblici e in esecuzione in un'applicazione Web ASP.NET.I tipi ServicedComponent sono contenuti da applicazioni COM+ e possono utilizzare i servizi COM+.WebMethodAttribute non è applicato ai tipi ServicedComponent poiché non sono previsti per gli stessi scenari.In particolare, l'aggiunta dell'attributo al metodo ServicedComponent non consente di chiamare il metodo da client Web remoti.Poiché WebMethodAttribute e un metodo ServicedComponent presentano comportamenti e requisiti di contesto e flusso di transazioni in conflitto tra loro, il comportamento del metodo non sarà corretto in determinati scenari.
Come correggere le violazioni
Per correggere una violazione di questa regola, rimuovere l'attributo dal metodo ServicedComponent.
Esclusione di avvisi
Non escludere un avviso da questa regola.Non sono previsti scenari in cui la combinazione di questi elementi sia corretta.