다음을 통해 공유


CA2212: 서비스 구성 요소를 WebMethod를 사용하여 표시하지 마십시오.

TypeName

DoNotMarkServicedComponentsWithWebMethod

CheckId

CA2212

범주

Microsoft.Usage

변경 수준

주요 변경

원인

System.EnterpriseServices.ServicedComponent에서 상속되는 형식의 메서드가 System.Web.Services.WebMethodAttribute로 표시되었습니다.

규칙 설명

WebMethodAttribute는 ASP.NET을 사용하여 만든 XML Web services 내의 메서드에 적용됩니다. 이렇게 하면 원격 웹 클라이언트에서 메서드를 호출할 수 있습니다. 이 메서드 및 클래스는 public이어야 하며 ASP.NET 웹 응용 프로그램 내에서 실행되어야 합니다. ServicedComponent 형식은 COM+ 응용 프로그램에 의해 호스팅되며 COM+ 서비스를 사용할 수 있습니다. 같은 시나리오에 사용하도록 설계된 것이 아니기 때문에 WebMethodAttributeServicedComponent 형식에 적용되지 않습니다. 다시 말해 이 특성을 ServicedComponent 메서드에 추가해도 원격 웹 클라이언트에서 메서드를 호출할 수 있는 것은 아닙니다. WebMethodAttributeServicedComponent 메서드에는 컨텍스트와 트랜잭션 흐름에 있어 충돌하는 동작 및 요구 사항이 있으므로 메서드의 동작이 일부 시나리오에서 잘못될 수 있습니다.

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 ServicedComponent 메서드에서 해당 특성을 제거합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다. 이러한 요소의 결합이 허용되는 시나리오는 없습니다.

참고 항목

참조

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute