ASP.NET Ajax调用WCF服务示例 |
|||||||
本文标签:ASPNET 本文的主要内容是通过ASP.NET Ajax调用WCF服务的代码示例。开发环境是:.NET Framework 3.5 Beta 2+Visual Studio 2005。 准备: 1、安装.NET Framework 3.5 Beta 2。 ASP.NET Ajax调用WCF服务需要.NET Framework 3.5 Beta 2中的System.Web.Extensions.dll(3.5.0.0),System.ServiceModel.Web.dll支持。 开始我安装的是.NET Framework 3.5 June 2007 Community Technology Preview (CTP),走了一些弯路。 2、安装Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF)。 3、检查IIS是否有.svc到c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll的映射,如果没有,建立映射,建立时取消“检查文件是否存在”的选择。 开始: 1、在VS 2005中新建一个Web Site项目。 添加web.config,将 2、在该项目中添加一个WCF Service,命名为CNBlogsWCFService.svc。 3、修改App_Code中CNBlogsWCFService.cs的代码:
如果想进一步了解上述代码,请参考:
4、修改CNBlogsWCFService.svc的代码: 增加:
改为: <%@ ServiceHost Language="C#" Debug="true" Service="CNBlogsWCFService" CodeBehind="'/App_Code/CNBlogsWCFService.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%>
Factory是.NET Framework 3.5 Beta 2中增加的,而我们用的是Visual Studio 2005 extensions for .NET Framework 3.0,所以要手动加上。 如果不通过Ajax调用WCF,需要设置为:Factory="System.ServiceModel.Web.WebServiceHostFactory"。 5、开始第一次运行,访问http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc,会出现如下页面: 6、继续运行,访问http://localhost/AjaxWCFDemo/CNBlogsWCFService.svc/js,你会看到自动生成访问WCF的客户端代理脚本。 7、OK!服务器端的WCF已经准备好了,下面就开始客户端的访问。 8、配置ASP.NET Ajax,在web.config中进行设置:
注意:要设置为3.5版本的System.Web.Extensions,如果使用asp.net ajax 1.0会得不到调用WCF服务返回的结果。 9、修改default.aspx的代码: 1)添加ScriptManager,将ServiceReference设置为:'/CNBlogsWCFService.svc。 2)将 <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %>
改为:
Namespace="System.Web.UI" TagPrefix="asp" %> 2)添加调用WCF服务的代码,完整代码如下:
10、一切就绪,体验一下Ajax调用WCF的快乐! |