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 метода.

Когда лучше отключить предупреждения

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

См. также