서비스된 구성 요소를 WebMethod를 사용하여 표시하지 마십시오.
업데이트: 2007년 11월
TypeName |
DoNotMarkServicedComponentsWithWebMethod |
CheckId |
CA2212 |
범주 |
Microsoft.Usage |
변경 수준 |
주요 변경 |
원인
System.EnterpriseServices.ServicedComponent에서 상속되는 형식의 메서드가 System.Web.Services.WebMethodAttribute로 표시되었습니다.
규칙 설명
WebMethodAttribute는 ASP.NET을 사용하여 만든 XML Web services 내의 메서드에 적용됩니다. 이렇게 하면 원격 웹 클라이언트에서 메서드를 호출할 수 있습니다. 메서드 및 클래스는 공용이어야 하며 ASP.NET 웹 응용 프로그램에서 실행되어야 합니다. ServicedComponent 형식은 COM+ 응용 프로그램에서 호스팅되며 COM+ 서비스를 사용할 수 있습니다. 같은 시나리오에서 사용되지 않는 ServicedComponent 형식에는 WebMethodAttribute가 적용되지 않습니다. 다시 말해 이 특성을 ServicedComponent 메서드에 추가해도 원격 웹 클라이언트에서 메서드를 호출할 수 있는 것은 아닙니다. WebMethodAttribute 및 ServicedComponent 메서드에는 컨텍스트와 트랜잭션 흐름에 있어 충돌하는 동작 및 요구 사항이 있으므로 메서드의 동작이 일부 시나리오에서 잘못될 수 있습니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 ServicedComponent 메서드에서 해당 특성을 제거합니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다. 이러한 요소의 결합이 허용되는 시나리오는 없습니다.