schack8888
风云使者
风云使者
  • 注册日期2010-12-06
  • 发帖数686
  • QQ
  • 火币3641枚
  • 粉丝161
  • 关注102
阅读:3334回复:0

ASP.NET Ajax调用WCF服务示例

楼主#
更多 发布于:2011-08-16 12:31
 本文的主要内容是通过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的代码:[table=95%][tr][td][color=#990000;]以下是引用片段:
[ServiceContract(Namespace = "http://www.cnblog.com/")]
  public interface ICNBlogsWCFService
  {
  [OperationContract]
  string AddToFavorites(string blogID, string postID);
  }
  public class CNBlogsWCFService : ICNBlogsWCFService
  {
  public string AddToFavorites(string blogID, string postID)
  {
  return string.Format("收藏成功!BlogID:{0},PostID:{1}", blogID, postID);
  }
  }[/td][/tr][/table]  如果想进一步了解上述代码,请参考:
  1.   Artech:[原创]我的WCF之旅(1):创建一个简单的WCF程序
  2.   Bruce Zhang:Windows Communication Foundation入门(Part Two)
  4、修改CNBlogsWCFService.svc的代码:  增加: [table=95%][tr][td][color=#990000;]以下是引用片段:
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory。[/td][/tr][/table]  改为:
[color=#990000;]以下是引用片段:
  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中进行设置:
[color=#990000;]以下是引用片段:

  
  
  
  
    
      
        
      
    
    
    
      
      
    
    
      
    
  
  注意:要设置为3.5版本的System.Web.Extensions,如果使用asp.net ajax 1.0会得不到调用WCF服务返回的结果。  9、修改default.aspx的代码:  1)添加ScriptManager,将ServiceReference设置为:'/CNBlogsWCFService.svc。  2)将  Namespace="System.Web.UI" TagPrefix="asp" %>
[color=#990000;]以下是引用片段:
  改为:
[color=#990000;]以下是引用片段:
  Namespace="System.Web.UI" TagPrefix="asp" %>  2)添加调用WCF服务的代码,完整代码如下:
[color=#990000;]以下是引用片段:





    


    
    

        
            
                
            
        
        收藏

        

        

     
        function AddToFavorites(blogID,postID)
        {
            var wcf = new www.cnblog.com.ICNBlogsWCFService();
            wcf.AddToFavorites(blogID,postID,OnSucceeded);
        }
        function OnSucceeded(result)
        {    
            document.getElementById("Msg").innerHTML = result;        
        }  
        

   

    




  10、一切就绪,体验一下Ajax调用WCF的快乐!

喜欢0 评分0
兼职版主
游客

返回顶部