如何:使用配置来添加 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 服务
通过用 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… }
使用
ICalculator
实现CalculatorService
服务协定。public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } // Other operations omitted… }
定义
ICalculator
和CalculatorService
实现的命名空间,方法是将它们放置在一个命名空间块中。namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Calculator here. }
创建服务的 ASP.NET AJAX 终结点
创建行为配置,并指定服务的支持 ASP.NET AJAX 的终结点的 <enableWebScript> 行为。
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
为使用 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 中承载服务
若要在 IIS 中承载服务,请使用应用程序中的 .svc 扩展创建名为 service 的新文件。 编辑此文件,在其中为服务添加适当的 @ServiceHost 指令信息。 例如,
CalculatorService
示例的服务文件中的内容包含以下信息。<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
有关在 IIS 中托管的详细信息,请参阅如何:在 IIS 中托管 WCF 服务。
调用服务
- 在相对于 .svc 文件的空地址处配置终结点,这样便可以使用该服务了,并且通过向 service.svc/<操作>(例如,表示
Add
操作的 service.svc/Add)发送请求来调用该服务。 可以通过在 ASP.NET AJAX 脚本管理器控件的脚本集合中输入终结点 URL 来使用它。 有关示例,请参阅 使用 HTTP POST 的 AJAX 服务。