CA2212: Non contrassegnare componenti serviti con WebMethod

Articolo Valore
ID regola CA2212
Category Microsoft.Usage
Modifica Interruzione

Causa

Un metodo in un tipo che eredita da System.EnterpriseServices.ServicedComponent è contrassegnato con System.Web.Services.WebMethodAttribute.

Descrizione regola

WebMethodAttribute si applica ai metodi all'interno di un servizio Web XML creato tramite ASP.NET; rende il metodo chiamabile dai client Web remoti. Il metodo e la classe devono essere pubblici ed eseguiti in un'applicazione Web ASP.NET. ServicedComponent i tipi sono ospitati da applicazioni COM+ e possono usare i servizi COM+. WebMethodAttribute non viene applicato ai ServicedComponent tipi perché non sono destinati agli stessi scenari. In particolare, l'aggiunta dell'attributo al ServicedComponent metodo non rende il metodo chiamabile dai client Web remoti. Poiché WebMethodAttribute e un ServicedComponent metodo presentano comportamenti e requisiti in conflitto per il contesto e il flusso delle transazioni, il comportamento del metodo non sarà corretto in alcuni scenari.

Come correggere le violazioni

Per correggere una violazione di questa regola, rimuovere l'attributo dal ServicedComponent metodo .

Quando eliminare gli avvisi

Non escludere un avviso da questa regola. Non esistono scenari in cui la combinazione di questi elementi è corretta.

Vedi anche