Поделиться через


Не следует помечать обслуживаемые компоненты атрибутом WebMethod

Обновлен: Ноябрь 2007

TypeName

DoNotMarkServicedComponentsWithWebMethod

CheckId

CA2212

Категория

Microsoft.Usage

Критическое изменение

Критическое

Причина

Метод в типе, наследуемом от System.EnterpriseServices.ServicedComponent, помечен атрибутом System.Web.Services.WebMethodAttribute.

Описание правила

WebMethodAttribute применяется к методам в веб-службе XML, которая была создана с помощью ASP.NET; этот атрибут обеспечивает возможность вызова данного метода удаленными веб-клиентами. Метод и класс должны быть открытыми и должны выполняться в веб-приложении ASP.NET. Типы ServicedComponent размещаются в приложениях COM+ и могут использовать службы COM+. WebMethodAttribute не применяется к типам ServicedComponent, поскольку они не предназначены для таких сценариев. В частности, при добавлении атрибута к методу ServicedComponent этот метод не становится доступным для вызова удаленными веб-клиентами. WebMethodAttribute и метод ServicedComponent ведут себя по-разному и имеют разные требования к контексту и потоку транзакций, поэтому поведение метода будет неверным в некоторых сценариях.

Устранение нарушений

Чтобы устранить нарушение этого правила, удалите атрибут из метода ServicedComponent.

Отключение предупреждений

Для этого правила отключать вывод предупреждений не следует. Не существует сценариев, в которых сочетание этих элементов допустимо.

См. также

Ссылки

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute