如何:在 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 服务以便从客户端脚本中对其进行调用
打开应用程序的 Web.config 文件。
将 serviceHostingEnvironment 元素的 aspNetCompatibilityEnabled 设置为 true,如下面的 example 所示:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
将消息堆栈配置为应用于 HTTP 管线,如下面的示例所示:
<bindings> <webHttpBinding> <binding name="default"/> </webHttpBinding> </bindings>
定义 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>
为在上述步骤中定义 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>