首页 > 系统 > 关键词  > 正文

用IE的Web服务建立ASP.NET应用程序(一)

2007-09-27 13:40 · 稿源:云南设计港

在建立商业网站的时候,开发者遇到的一种限制是只能把浏览器作为用户界面。例如,在很多情形中,用户希望在执行某些操作(例如输入雇员编号)之后从服务器检索到信息。为了达到这个目的,他们将把页面发回到服务器,检索雇员信息,并用从服务器上检索到的信息刷新页面。尽管目前这种刷新整个页面的方法很普遍,但是它的效率很低,因为Web页面刷新了,并且重新呈现了整个页面的内容,即使页面只要少量的部分真正地发生了改变。在搜索某个类别或者搜索引擎的时候你就可以注意到这种低下的效率。它的延迟和资源浪费非常明显。但是,如果相同的功能不用刷新浏览器页面就能够完成,用户体验将会得到很大的提高。为了实现这种目的,我们需要在不离开当前页面的情况下执行一段服务器代码的途径,这就是Web服务行为起的作用。在这种情形下,服务器上执行的代码片段是Web服务方法的代码,浏览器的角色是调用这段服务器代码而不离开或刷新当前页面。

使用Web服务行为的时候,你只需要从某个客户端浏览器的Web页面中发送一个请求执行特定的Web服务方法。在服务器端,ASP.NET运行时接收到请求,使用相关的参数调用Web服务方法。在Web服务执行完成后,它把结果传达给调用者,接下来结果被浏览器显示或处理。其结果是,你可以建立典型的客户端/服务器通讯,而不需要理会下层HTTP协议的无状态(stateless)特性。Web服务行为的另一个优点是为了实现功能,客户端上只需要一个文件(webservice.htc)存在。使用Web服务方法的时候,你还可以异步调用Web服务方法。这种能力非常强大,可以用于在客户端建立丰富的用户体验。例如,当用户继续处理相同页面上的事务的时候,你可以使用Web服务行为让服务器验证某些数据。一旦函数调用返回了,你就可以得到执行结果并把结果传达给用户。

Web服务行为

Web服务行为是把HTML组件(HTC)文件作为附属行为实现功能的,它可以用于InternetExplorer5及以后版本。前面提到过,Web服务行为通过利用工业标准协议(例如HTTP、SOAP和XML)提供了跨平台调用远程Web方法的途径。Web服务行为的重要特性之一是,它允许你在没有深厚的SOAP知识的情形下使用这些功能。Web服务通过处理浏览器和Web服务之间的SOAP数据包通讯,基本上简化了Web服务的远程调用。你不用担心SOAP消息的聚集(assembling)和分解(disassembling)。所有处理SOAP详细信息的代码都被封装在行为之中,简化了主Web页面中的客户端脚本。

Web服务行为是使用特定的IE行为语法嵌入Web页面的JavaScript文件。通过把属性和方法暴露给客户端脚本,Web服务行为聚集消息并分解Web服务发回的响应信息。行为所暴露的对象不仅能够启动清晰的错误处理方法,而且提供了对返回数据的简单地访问。Web服务行为从客户端脚本接收到方法调用,并使用SOAP消息给Web服务发送请求。结果会返回客户端脚本,并且处理过程继续。接下来Web页面可以把信息用于任何需要的情形中,例如更新页面的某些部分,发送错误消息等等。

Web服务行为的一个关键特性是它允许客户端脚本访问Web服务而不用导航到另一个URL。下面的列表详细说明了Web服务行为支持的重要的方法:

·createUseOptions(建立使用的选项)--允许我们跨越远程方法调用保存用户认证信息。当我们使用SSL与远程Web服务通讯的时候会很有用。

·callService(调用服务)--允许我们异步调用远程Web服务。

·useService(使用服务)--允许我们在调用Web服务的时候为该服务建立一个"友好的"名称。

为了在IE5.0和以上版本的Web页面中使用行为,你必须下载webservice.htc行为文件,并把它保存在与你的Web页面相同的文件夹中。这个文件可以从下面的链接下载得到:https://msdn.microsoft.com/downloads/samples/internet/behaviors/library/webservice/web-service.htc。

实现过程

你已经了解了Web服务行为的一些基础知识,现在可以看一个示例应用程序了,它演示了在ASP.NET应用程序中如何使用Web服务行为。在这个例子中,你将建立一个简单的应用程序,它允许你从Northwind数据库检索雇员信息。示例应用程序还允许基于雇员的ID搜索雇员信息。

EmployeeWeb服务的建立过程

在这一部分,你需要首先建立一个叫作EmployeeWebService的新VisualC#Web服务项目。项目建立之后,你需要把默认的Web服务类的名字Service1改成EmployeeService。接着你需要导入下面的名字空间以执行数据访问和处理XML数据。
  

以下为引用的内容:
  usingSystem.Data.SqlClient;
  usingSystem.Xml;
  
  [WebMethod]
  publicXmlDocumentGetEmpDetailsByEmpID(intemployeeID)
  {
  stringconnString=
  System.Configuration.ConfigurationSettings.AppSettings["connectionString"];
  SqlConnectionsqlConnection=newSqlConnection(connString);
  try
  {
  DataSetemployeeDataset=newDataSet("EmployeesRoot");
  //把需要执行的存储过程的名字和SqlConnection对象作为参数传递进来
  SqlDataAdapteradapter=newSqlDataAdapter();
  SqlCommandcommand=newSqlCommand("Select*fromEmployeesWhereEmployeeID="+employeeID.ToString(),sqlConnection);
  //设置SqlCommand对象的属性
  command.CommandType=CommandType.Text;
  adapter.SelectCommand=command;
  //使用存储过程返回的值填充数据集
  adapter.Fill(employeeDataset,"Employees");
  XmlDocumentxmlDoc=newXmlDocument();
  xmlDoc.LoadXml(employeeDataset.GetXml());
  returnxmlDoc;
  }
  catch(Exceptionex)
  {
  throwex;
  }
  finally
  {
  if(sqlConnection.State==ConnectionState.Open)
  {
  sqlConnection.Close();
  }
  }
  }

属性WebMethod表明该方法将作为可以被调用的Web方法暴露。在项目部署的时候,ASP.NET运行时提供使用某些协议(例如XML、HTTP和SOAP)在Internet上调用这个方法所需要的所有管道信息。

举报

  • 相关推荐
  • A日报:Stability AI发布实时重建模型SPAR3D;火山引擎“奇美拉”数字人平台启动封测;京东重磅开源JoyAgent-JDGenie

    AI日报栏目精选了人工智能领域最新动态:1)Stability AI推出0.7秒单图3D重建模型SPAR3D;2)GitHub热门开源AI协作框架CrewAI获3.4万星;3)马斯克发布儿童AI聊天机器人Baby Grok引发安全争议;4)ComfyUI-C opilot工具简化AI工作流创建;5)CNNIC报告显示我国346款生成式AI完成备案;6)提示词管理工具AI Gist上线;7)开源语言学习工具WordPecker支持多语言学习;8)斯坦福推出多工具协作AI Agent OctoTools;9)Ope

  • 移动互联网重构B2B外贸生态:全链路服务与智能匹配时代来临

    文章探讨了中国外贸企业通过移动互联网实现数字化转型的趋势。义乌玩具供应商通过手机接单200万美元墨西哥订单的案例,展现了移动端B2B外贸平台如何通过AI匹配、视频洽谈、多语言服务等技术革新,重构全球采购模式。数据显示,移动端订单占比从2020年32%飙升至2025年预计71%,典型平台如阿里巴巴国际站和义乌购已实现全流程移动化操作。专家指出,未来竞争关键在于物流、支付、报关等生态融合,而AR验货、AI谈判助手等新技术正成为平台布局重点。文章揭示:外贸数字化已从渠道迁移升级为全链路效率革命,中小企业的全球化门槛正在被移动互联网彻底打破。

  • OPPO K13 Turbo系列卖爆:首销激活量较上代提升380%

    OPPO宣布,OPPO K13 Turbo系列首销单日激活量较上代提升380%,全新K系列创新的疾风散热引擎带来越级性能,比普通手机更可靠的满级防水抗摔广受认可。 该系列包含K13 Turbo和K13 Turbo Pro两款机型,起售价是1799元(12G 256G),支持国补。 该机是千元档唯一一款配备主动散热系统的手机,K13 Turbo系列首发搭载史上最强手机风冷散热技术OPPO疾风散热引擎,该机创新性打造了L型风道,�

  • IEBE Awards认证全球消费者喜爱的品质品牌:小熊电器的“被爱”逻辑

    小熊电器凭借"全球用户喜爱"和"生活方式品牌"的双重优势,在全球家庭中赢得持久青睐。其成功源于三大核心:1)精准洞察用户需求,如针对东南亚市场推出带提手的母婴电炖锅;2)构建"需求洞察-研发创新-智能制造"全链条体系,拥有600名研发人员和5大智能基地;3)从单一产品转向全场景解决方案,如婴儿喂养场景的一站式服务。目前产品覆盖100多个国家,2024年海外收入增长80.81%,3700余项专利和90个品类印证其创新实力。企业愿景是让"轻松愉悦的品质生活"触达全球更多家庭。

  • ZEROBASE 宣布与 Aligned Layer 建立战略合作,共同打造以太坊生态中高吞吐、低成本的零知识证明验证基础设施

    Aligned Layer是一个去中心化的ZK验证层网络,通过EigenLayer的再质押机制继承以太坊安全性,为开发者提供链下快速验证任意证明系统的能力。其原生验证器采用Rust编写,不依赖EVM且支持多验证路径,能批量校验证明后发布到任意L1/L2链上。ZEROBASE通过集成Aligned的快速验证通道,构建了结构化验证网络,支持批量验证与递归聚合,实现高吞吐、低成本的ZK证明验证。双方合作实现了从链下任务调度到链上最终确认的无缝衔接,为以太坊生态提供了兼具性能与安全性的验证基础设施。

  • 腾讯云TencentOS提交Swap Table补丁系列 Linux内核内存交换性能提升20%~30%

    腾讯云操作系统团队提交了名为Swap Table的补丁系列,针对Linux内核交换子系统进行优化。该系列在4K页面和mTHP folios场景下,使系统性能提升20%-30%。Swap Table通过智能调度机制优化数据定位,支持大页尺寸减少操作次数,并实现动态空间扩展。27项独立改进解决了历史遗留问题,经实测性能显著提升。目前补丁系列正处于审核阶段,有望纳入Linux内核主线。这是腾讯云团队继内存控制组、页面热管理等创新后,在操作系统核心技术领域的又一突破,将强化TencentOS Server的高性能优势。

  • iTAP完成“大考”,这些应用场景将率先落地!

    2025年7月11日,首届iTAP测试大会在西安成功举办。华为、支付宝、华大电子等产业链头部企业共同完成了支付、门禁、票务三大场景下的协议互通性验证,标志着iTAP技术正式通过商用化验证。华为Pura80手机和Watch GT5智能手表成为首批通过全部测试的设备。测试结果显示,iTAP技术突破传统NFC协议痛点,交互效率提升300%,支持存量设备通过软件升级接入,显著降低硬件迭代成本。产业协同效应显现,多家芯片厂商已制定明确技术路线图,加速生态布局。未来iTAP技术将在智慧交通、数字生活等领域加速商业化落地,ITMA协会拟于2025年第四季度再次举办测试大会,持续推动产业协同发展。

  • OPPO K13 Turbo系列外观公布:自带RGB风扇 EVA初号机配色

    OPPO今天正式公布了OPPO K13 Turbo系列新机外观,展示了新机的风扇等外观细节,以及全新配色。 该机后摄模组造型比较简洁,只有主摄和下放的风扇凸起,风扇外圈自带RGB灯效。

  • OPPO K13 Turbo Pro明天首销:同档最冷骁龙8系手机 1999元

    OPPO预告,OPPO K13 Turbo Pro将于明天正式发售,起售价是1999元。 这是同档位唯一一款拥有主动散热能力的机型,该机首发疾风散热引擎,内置了主动散热风扇,隐藏在主摄下方,是行业内最强风冷散热技术。 据悉,OPPO K13 Turbo Pro配备0.1mm超薄扇叶,做到了每分钟18000转,开创性提高20%进风量,让Soc的核心温度明显降低,而且这套风扇模组支持满级防水,是手机行业唯一拥有满级�

  • Cactus Custody 与 Bybit 达成战略合作,提升加密安全系数

    7月23日,Matrixport旗下合规数字资产托管商Cactus Custody宣布与Bybit达成战略合作,其场外结算系统Cactus Oasis将于7月28日正式接入Bybit平台。该系统专为机构客户设计,融合资产安全托管与高效结算功能,用户无需预充值交易所账户,只需将抵押资产存入托管账户即可交易。合作将提升加密投资者的交易体验,降低交易对手风险。Cactus Custody持有香港信托公司牌照,采用冷热钱包分层架构和银行级存储设施,并通过SOC1/2审计认证,确保资产安全合规。双方表示此次合作将加速机构资金入场,推动加密行业机构化进程。

今日大家都在搜的词: