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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de