CA2212: не следует помечать обслуживаемые компоненты атрибутом WebMethod
TypeName |
DoNotMarkServicedComponentsWithWebMethod |
CheckId |
CA2212 |
Категория |
Microsoft.Usage |
Критическое изменение |
Критическое изменение |
Причина
Метод в типе, наследуемом от ServicedComponent, помечен атрибутом WebMethodAttribute.
Описание правила
WebMethodAttribute применяется к методам в веб-службе XML, которая была создана с помощью ASP.NET; этот атрибут обеспечивает возможность вызова данного метода удаленными веб-клиентами.Такой метод и класс должны быть открытыми и выполняться внутри веб-приложения ASP.NET.Типы ServicedComponent размещаются приложениями COM+ и могут использовать службы COM+.WebMethodAttribute не применяется к типам ServicedComponent, поскольку они не предназначены для того же сценария.В частности, при добавлении атрибута к методу ServicedComponent этот метод не становится доступным для вызова удаленными веб-клиентами.WebMethodAttribute и метод ServicedComponent ведут себя по-разному и имеют разные требования к контексту и потоку транзакций, поэтому поведение метода будет неверным в некоторых скриптах.
Устранение нарушений
Чтобы устранить нарушение этого правила, удалите атрибут из метода ServicedComponent.
Отключение предупреждений
Для этого правила отключать вывод предупреждений не следует.Не существует скриптов, в которых сочетание этих элементов допустимо.