Compartir a través de


CA2212: No marcar los componentes con servicio como WebMethod

Nombre de tipo

DoNotMarkServicedComponentsWithWebMethod

Identificador de comprobación

CA2212

Categoría

Microsoft.Usage

Cambio problemático

Motivo

Un método de un tipo que hereda de System.EnterpriseServices.ServicedComponent se marca con System.Web.Services.WebMethodAttribute.

Descripción de la regla

WebMethodAttribute se aplica a los métodos dentro de un servicio Web XML creado mediante ASP.NET; esto hace que el método sea invocable desde los clientes Web remotos.El método y la clase deben ser públicos, y se ejecutan en una aplicación Web ASP.NET.Los tipos ServicedComponent se hospedan en aplicaciones COM+ y pueden usar los servicios COM+.WebMethodAttribute no se aplica a los tipos ServicedComponent porque no están pensados para los mismos escenarios.De forma específica, agregar el atributo al método ServicedComponent no hace que el método sea invocable desde los clientes Web remotos.Puesto que un método WebMethodAttribute y otro 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 advertencias

No suprima las advertencias de esta regla.No hay ningún escenario donde sea correcto combinar estos elementos.

Vea también

Referencia

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute