CA2212:不要使用 WebMethod 标记服务组件

类型名

DoNotMarkServicedComponentsWithWebMethod

CheckId

CA2212

类别

Microsoft.Usage

是否重大更改

原因

某类型中从 System.EnterpriseServices.ServicedComponent 继承的方法是使用 System.Web.Services.WebMethodAttribute 标记的。

规则说明

WebMethodAttribute 适用于在 XML Web 服务内使用 ASP.NET 创建的方法;它使方法能从远程 Web 客户端被调用。 方法和类必须是公共的,并且必须在 ASP.NET Web 应用程序中执行。 ServicedComponent 类型由 COM+ 应用程序承载,可以使用 COM+ 服务。 WebMethodAttribute 不会应用于 ServicedComponent 类型,,因为它们不是供相同情况使用的。 具体地说,将该特性添加到 ServicedComponent 方法不会使该方法可以从远程 Web 客户端被调用。 因为 WebMethodAttributeServicedComponent 方法在上下文和事务流方面的行为和要求有冲突,所以该方法的行为在某些情况下会不正确。

如何解决冲突

要修复与该规则的冲突,请从 ServicedComponent 方法中移除该特性。

何时禁止显示警告

不要禁止显示此规则发出的警告。 在任何情况下将这些元素组合在一起都是不正确的。

请参见

参考

System.EnterpriseServices.ServicedComponent

System.Web.Services.WebMethodAttribute