Не следует помечать обслуживаемые компоненты атрибутом 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.
Отключение предупреждений
Для этого правила отключать вывод предупреждений не следует. Не существует сценариев, в которых сочетание этих элементов допустимо.