CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 技巧

用Visual Studio.NET 2008实现Ajax+WCF Service交互

作者: zzqqqzzz ,  出处:Csdn博客 , 责任编辑: 王尔玉, 
2008-03-10 18:12
  Visual Studio.NET 2008已经出了Beta2版。相信有些朋友已经下载尝鲜了。与Visual Studio.NET 2008一起发布的.NET Framework 3.5对于JavaScript及Json有着非常好的支持,这将使得客户端的Ajax代码可以非常方便的和服务器交互,传送数据。

  Visual Studio.NET 2008已经出了Beta2版。相信有些朋友已经下载尝鲜了。与Visual Studio.NET 2008一起发布的.NET Framework 3.5对于JavaScript及Json有着非常好的支持,这将使得客户端的Ajax代码可以非常方便的和服务器交互,传送数据。下面有一个简短例子可以帮助您了解这些特性。

  在这个例子里面,我们用Ajax的方式查询服务器上进程情况。

  首先我们先打开Visual Studio.NET 2008并创建一个ASP.NET Web Site。

  windows

  然后,我们在这个项目里面添加一个Ajax-enabled WCF Service: ProcessService。

  这里我们可以看到,一个默认的WCF Service已经被生成:

  [ServiceContract(Namespace="")][AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]public class DiscService...{// Add [WebGet] attribute to use HTTP GET[OperationContract]public void DoWork()...{// Add your operation implementation herereturn;} // Add more operations here and mark them with [OperationContract]}

  这里我们就需要作一些小小的修改:using System;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Activation;using System.ServiceModel.Web;using System.IO;using System.Diagnostics;using System.Collections.Generic;[ServiceContract(Namespace="")][AspNetCompatibilityRequirements(RequirementsMode= AspNetCompatibilityRequirementsMode.Allowed)]public class DiscService...{// Add [WebGet] attribute to use HTTP GET[OperationContract]public MyProcess[] GetProcess(string random)...{List myProcesses = new List();Process[] processes = Process.GetProcesses();foreach (Process process in processes)...{MyProcess mp = new MyProcess();mp.ProcessName = process.ProcessName;mp.Memory = process.VirtualMemorySize64;mp.ThreadCount = process.Threads.Count;myProcesses.Add(mp);}return myProcesses.ToArray();} // Add more operations here and mark them with [OperationContract]}[DataContract]public class MyProcess...{[DataMember]public long Memory; [DataMember]public int ThreadCount; [DataMember]public string ProcessName;}

  修改好编译项目,然后用浏览器浏览ProcessService.svc, 这时候可以看到一些WCF的说明关于当前WCF Service的Meta publishing 被disabled了。不要紧,现在你可以在URL后面输入一个/js后缀,比如我这里URL是:http://localhost:1314/AjaxWithWCF/ProcessService.svc/js。这时候你就会看到一个下载提示框,你可以通过这个URL得到一个Javascript的proxy文件,这些javascript是用来访问我们刚刚建立的WCF Service的。现在我们的Service端准备好了,接下来就是添加一个Ajax Web Form. (默认的Ajax Web Form 会帮我们添加必要的Web.config section, 同事也会在aspx Code里面添加一个ScriptManager)让我们来添加一个按钮和一个搜索框以及简单的Javascript来访问这个Service.我们可以在Form 里面加上这些代码:

共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i