CA2212: не следует помечать обслуживаемые компоненты атрибутом WebMethod
Товар | Значение |
---|---|
Идентификатор правила | 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 метода.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует. Нет сценариев, когда объединение этих элементов является правильным.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по