<comContract>

指定 COM+ 集成服务协定。

架构层次结构

<system.serviceModel>
  <comContracts>

语法

<comContracts>
  <comContract
      contract="string"
      namespace="string"
      name="string"
      requireSession="Boolean">
      <exposedMethods>
         <exposedMethod name="string" />
      </exposedMethods>
      <userDefinedTypes>
         <userDefinedType name="string"
            typeLibID="string"
            typeLibVersion="string"
            typeDefID="string">
         </userDefinedType>
      </userDefinedTypes>
      <persistableTypes>
         <persistableType id="string"
            name="string">
         </persistableType>
      </persistableTypes>
  </comContract>
</comContracts>

属性和元素

以下几节描述了特性、子元素和父元素。

属性

特性 说明

contract

一个包含协定类型的字符串。

name

一个包含协定名称的字符串。

namespace

一个包含协定命名空间的字符串。

requiresSession

一个布尔值,指定是否只能在会话绑定上使用该协定。在初始化服务时,集成运行库可以确保此设置与要使用的绑定的类型一致。如果协定的一个或多个绑定存在冲突,则会生成异常。如果此属性为 false、使用的是单向通道并且存在任何 [out] 参数,则也会生成异常。

子元素

元素 说明

persistableTypes

所有持久类型。

userDefinedTypes

一个要包括在服务协定中的用户定义的类型 (UDT) 的集合。

exposedMethods

一个在 COM+ 组件上的接口作为 Web 服务公开时所公开的 COM+ 方法的集合。

父元素

元素 说明

comContracts

包含 comContract 元素的集合。

备注

COM+ 集成服务协定当前只限于“http://tempuri.org”命名空间,而协定名称是从提供支持的 COM 接口派生的。但是,可以使用配置文件中的 comContracts 节以及 comContract 元素来指定替代服务协定。例如,可以使用下面的配置来指定服务协定的命名空间、协定名称、要包含的用户定义类型以及其他设置。

<comContracts>
  <comContract
      contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
      namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
      name="_Broker"
      requireSession="true">
      <exposedMethods>
         <exposedMethod name="BuyStock" />
         <exposedMethod name="SellStock" />
         <exposedMethod name="ExecuteTransaction" />
      </exposedMethods>
  </comContract>
</comContracts>

在初始化服务时,指定的命名空间和协定名称将应用到生成的服务说明。

另请参见

参考

ComContractElementCollection
ComContractElementCollection
ComContractElement

概念

<comContracts>

其他资源

Integrating with COM+ Applications
How to: Configure COM+ Service Settings