如何:在 ASP.NET AJAX 中配置 WCF 服务

更新:2007 年 11 月

使用 Windows Communication Foundation (WCF) 可以创建一种特殊的服务 (.svc),这种服务可从支持 ASP.NET AJAX 的 Web 应用程序中运行的客户端 ECMAScript (JavaScript) 函数内进行调用。本主题说明如何配置这种服务,以便从客户端脚本中对其进行调用。此服务可在 Web.config 文件的 system.serviceModel 元素中进行配置,该元素是 configuration 节的子级。

在调用 WCF 服务期间,将使用 JSON 格式在客户端应用程序和服务之间交换数据。

配置 WCF 服务以便从客户端脚本中对其进行调用

  1. 打开应用程序的 Web.config 文件。

  2. 将 serviceHostingEnvironment 元素的 aspNetCompatibilityEnabled 设置为 true,如下面的 example 所示:

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    
  3. 将消息堆栈配置为应用于 HTTP 管线,如下面的示例所示:

    <bindings>
        <webHttpBinding>
           <binding name="default"/>
        </webHttpBinding>
    </bindings>
    
  4. 定义 behaviors 元素所包含的 endpointBehaviors 和 serviceBehaviors,以配置终结点和服务的 behavior 元素。

    必须配置 endpointBehaviors 元素的 behavior 元素,才能启用 Web 脚本。另外,还必须配置 serviceBehaviors 元素的 behavior 元素,才能发布服务元数据,以使用 HTTP GET 请求进行检索。

    下面的示例演示如何配置 behavior 和 endPointBehavior 元素。

    <behaviors>
      <endpointBehaviors>
        <behavior name="webScriptEnablingBehavior">
          <enableWebScript/>
        </behavior>
      </endpointBehaviors>
    
      <serviceBehaviors>
        <behavior name="MyServiceTypeBehaviors">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    
  5. 为在上述步骤中定义 webHttpBinding 和 behavioConfiguration 属性的 service 元素配置一个终结点。

    下面的示例演示如何配置 service 元素。

    <services>
      <service name="Samples.Aspnet.SimpleService"
         behaviorConfiguration="MyServiceTypeBehaviors">
         <endpoint address="" binding="webHttpBinding"
           bindingConfiguration="default"
           contract="Samples.Aspnet.ISimpleService"
           behaviorConfiguration="webScriptEnablingBehavior"/>
      </service>
    </services>
    

请参见

概念

向客户端脚本公开 WCF 服务

其他资源

<system.serviceModel>

为 ASP.NET AJAX 创建 WCF 服务

如何:使用配置来添加 ASP.NET AJAX 终结点

支持 JSON 和其他数据传输格式