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 |
Sí |
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.