频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> Asp.Net教程 -> ASP.NET Ajax调用WCF服务的代码示例

ASP.NET Ajax调用WCF服务的代码示例

作者:未知  来源:www.jz123.cn  发布时间:2007-9-29 8:50:09  发布人:圈圈

减小字体 增大字体

 本文的主要内容是通过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的代码:


[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);
  }
  }

  如果想进一步了解上述代码,请参考:

  1.   Artech:[原创]我的WCF之旅(1):创建一个简单的WCF程序
  2.   Bruce Zhang:Windows Communication Foundation入门(Part Two)

  4、修改CNBlogsWCFService.svc的代码:

  增加:

Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory。

  改为:

<%@ ServiceHost Language="C#" Debug="true" Service="CNBlogsWCFService" CodeBehind="~/App_Code/CNBlogsWCFService.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%><%@ 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中进行设置:

<?xml version="1.0"?>
<configuration> 
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <compilation debug="false">
      <assemblies>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
    <authentication mode="Forms" />
    <httpHandlers>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
  </system.web>
</configuration>

  注意:要设置为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" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %>

  改为:

<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"

  Namespace="System.Web.UI" TagPrefix="asp" %>

  2)添加调用WCF服务的代码,完整代码如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"   Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Ajax WCF 演示 </title>
</head>
<body>
    <form id="form1" runat="server">
    <div align="center" style="margin-top:50px">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/CNBlogsWCFService.svc" />
            </Services>
        </asp:ScriptManager>
        <a href="#" onclick="AddToFavorites('1','2')">收藏</a><br />
        <br />
        <span style="color:Red" id="Msg"></span>

        <script type="text/javascript">
        function AddToFavorites(blogID,postID)
        {
            var wcf = new www.cnblog.com.ICNBlogsWCFService();
            wcf.AddToFavorites(blogID,postID,OnSucceeded);
        }
        function OnSucceeded(result)
        {   
            document.getElementById("Msg").innerHTML = result;        
        }  
        </script>

    </div>
    </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

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


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 发现一个发送mime邮件的..
· 中国会计师网免费邮箱
· PHP操作excel的一个例子..
· (转载)在ASP中用“正则表..
· 主页随机动态效果
· Microsoft SQLServer安装..
· 将拍坏的废照片改造国画..
· 用javascript调用webser..
· 如何用这篇文章解决我们..
· Photoshop美化修改你的照..
· 创建移动Web应用程序(1)..
· 利用ASP实现三个强大功能..
· FrontPage XP直通车第6站..
· asp分页显示详论
· 国外WEB标准推广站点
· PHP5的XML新特性
相关文章
· ASP.NET连接Access和SQL Se..
· Asp.net中防止用户多次登录..
· ASP.NET 与 Ajax 的实现方式..
· ASP.net平台社区软件Discuz..
· ASP.NET AJAX中的异步..
· 解析:如何在 ASP.NET 中下..
· ASP.Net中保护自定义的服务..
· ASP.NET中的doPostBack脚本..
· 不使用VS进行ASP.NET Membe..
· 关于ASP.NET编程中的嵌套If..
· ASP.NET 2.0 页面状态持续程..
· ASP.NET中的日期与时间的处..
· Asp.net编程中的数组基础实..
· 简单介绍 ASP.NET 中的运算..
· Asp.Net 构架(Http请..
· Asp.net中的Popup控件..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号