CA2212: No marcar los componentes con servicio como WebMethod

Elemento Valor
RuleId CA2212
Category Microsoft.Usage
Cambio importante Problemático

Causa

Un método en un tipo que hereda de System.EnterpriseServices.ServicedComponent está marcado con System.Web.Services.WebMethodAttribute.

Descripción de la regla

WebMethodAttribute se aplica a los métodos de un servicio Web XML que se crearon mediante ASP.NET y hace que se pueda llamar a ellos desde clientes web remotos. El método y la clase deben ser públicos y ejecutarse en una aplicación web ASP.NET. Los tipos ServicedComponent se hospedan en aplicaciones COM+ y pueden usar servicios COM+. WebMethodAttribute no se aplica a los tipos ServicedComponent porque no están diseñados para los mismos escenarios. En concreto, la adición del atributo al método ServicedComponent no hace que se pueda llamar a al método desde clientes web remotos. Dado que WebMethodAttribute y un método ServicedComponent tienen comportamientos y requisitos conflictivos para el flujo de transacción y el contexto, el comportamiento del método es incorrecto en algunas situaciones.

Cómo corregir infracciones

Para corregir una infracción de esta regla, quite el atributo del método ServicedComponent.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. No hay ningún escenario en el que la combinación de estos elementos sea correcta.

Consulte también