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

使用 Windows Communication Foundation (WCF) 可以创建服务来提供支持 ASP.NET AJAX 并且可以从客户端网站上的 JavaScript 中调用的终结点。 要创建这样的终结点,可以使用配置文件(与所有其他 Windows Communication Foundation (WCF) 终结点一样),或使用不需要任何配置元素的方法。 本主题演示配置方法。

使服务终结点支持 ASP.NET AJAX 的部分过程包括:配置终结点以使用 WebHttpBinding,以及添加 <enableWebScript> 终结点行为。 配置终结点后,实现和托管服务的步骤与任何 WCF 服务使用的步骤类似。 有关有效示例,请参阅 使用 HTTP POST 的 AJAX 服务

有关如何在不使用配置的情况下配置 ASP.NET AJAX 终结点的详细信息,请参阅如何:在不使用配置的情况下添加 ASP.NET AJAX 终结点

创建基本 WCF 服务

  1. 通过用 ServiceContractAttribute 属性标记的接口定义基本 WCF 服务协定。 用 OperationContractAttribute 标记每个操作。 确保设置 Namespace 属性。

    [ServiceContract(Namespace = "MyService")]  
    public interface ICalculator  
    {  
        [OperationContract]  
         // This operation returns the sum of d1 and d2.  
        double Add(double n1, double n2);  
    
        //Other operations omitted…  
    
    }  
    
  2. 使用 ICalculator 实现 CalculatorService 服务协定。

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }
        // Other operations omitted…
    }
    
  3. 定义 ICalculatorCalculatorService 实现的命名空间,方法是将它们放置在一个命名空间块中。

    namespace Microsoft.Ajax.Samples
    {  
        //Include the code for ICalculator and Calculator here.  
    }  
    

创建服务的 ASP.NET AJAX 终结点

  1. 创建行为配置,并指定服务的支持 ASP.NET AJAX 的终结点的 <enableWebScript> 行为。

    <system.serviceModel>  
        <behaviors>  
            <endpointBehaviors>  
                <behavior name="AspNetAjaxBehavior">  
                    <enableWebScript />  
                </behavior>  
            </endpointBehaviors>  
        </behaviors>  
    </system.serviceModel>  
    
  2. 为使用 WebHttpBinding 和前面的步骤中定义的 ASP.NET AJAX 行为的服务创建终结点。

    <system.serviceModel>  
        <services>  
            <service name="Microsoft.Ajax.Samples.CalculatorService">  
                <endpoint address=""  
                    behaviorConfiguration="AspNetAjaxBehavior"
                    binding="webHttpBinding"  
                    contract="Microsoft.Ajax.Samples.ICalculator" />  
            </service>  
        </services>  
    </system.serviceModel>
    

在 IIS 中承载服务

  1. 若要在 IIS 中承载服务,请使用应用程序中的 .svc 扩展创建名为 service 的新文件。 编辑此文件,在其中为服务添加适当的 @ServiceHost 指令信息。 例如,CalculatorService 示例的服务文件中的内容包含以下信息。

    <%@ServiceHost
    language=c#
    Debug="true"
    Service="Microsoft.Ajax.Samples.CalculatorService"  
    %>  
    
  2. 有关在 IIS 中托管的详细信息,请参阅如何:在 IIS 中托管 WCF 服务

调用服务

  1. 在相对于 .svc 文件的空地址处配置终结点,这样便可以使用该服务了,并且通过向 service.svc/<操作>(例如,表示 Add 操作的 service.svc/Add)发送请求来调用该服务。 可以通过在 ASP.NET AJAX 脚本管理器控件的脚本集合中输入终结点 URL 来使用它。 有关示例,请参阅 使用 HTTP POST 的 AJAX 服务

请参阅