时间: 2021-07-31 作者:daque
在创造贸易网站的功夫,开拓者遇到的一种控制是只能把欣赏器动作用户界面。比方,在很多景象中,用户蓄意在实行某些操纵(比方输出雇员编号)之后从效劳器检索到消息。为了到达这个手段,她们将把页面发回到效劳器,检索雇员消息,并用从效劳器上检索到的消息革新页面。纵然暂时这种革新所有页面包车型的士本领很一致,然而它的功效很低,由于web页面革新了,而且从新表露了所有页面包车型的士实质,纵然页面只有小批的局部真实地爆发了变换。在探求某个类型大概探求引擎的功夫你就不妨提防到这种卑下的功效。它的推迟和资源滥用特殊鲜明。然而,即使沟通的功效不必革新欣赏器页面就不妨实行,用户领会将会获得很大的普及。为了实行这种手段,咱们须要在不摆脱暂时页面包车型的士情景下实行一段效劳器代码的道路,这即是web效劳动作起的效率。在这种景象下,效劳器上实行的代码片断是web效劳本领的代码,欣赏器的脚色是挪用这段效劳器代码而不摆脱或革新暂时页面。 运用web效劳动作的功夫,你只须要从某个存户端欣赏器的web页面中发送一个乞求实行一定的web效劳本领。在效劳器端,asp.net运转时接受到乞求,运用关系的参数挪用web效劳本领。在web效劳实行实行后,它把截止传播给挪用者,接下来截止被欣赏器表露或处置。其截止是,你不妨创造典范的存户端/效劳器通信,而不须要领会基层http和议的无状况(stateless)个性。web效劳动作的另一个便宜是为了实行功效,存户端上只须要一个文献(webservice.htc)生存。运用web效劳本领的功夫,你还不妨异步伐用web效劳本领。这种本领特殊宏大,不妨用来在存户端创造充分的用户领会。比方,当用户连接处置沟通页面上的工作的功夫,你不妨运用web效劳动作让效劳器考证某些数据。一旦因变量挪用归来了,你就不妨获得实行截止并把截止传播给用户。 web效劳动作 web效劳动作是把html组件(htc)文献动作隶属动作实行功效的,它不妨用来internet explorer 5及此后本子。前方提到过,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效劳的功夫为该效劳创造一个"和睦的"称呼。 为了在ie 5.0和之上本子的web页面中运用动作,你必需载入webservice.htc动作文献,并把它生存在与你的web页面沟通的文献夹中。这个文献不妨从底下的链接载入获得:http://msdn.microsoft.com/downloads/samples/internet/behaviors/library/webservice/webservice.htc。 实行进程 你仍旧领会了web效劳动作的少许普通常识,此刻不妨看一个示例运用步调了,它演练了在asp.net运用步调中怎样运用web效劳动作。在这个例子中,你将创造一个大略的运用步调,它承诺你从northwind数据库检索雇员消息。示例运用步调还承诺鉴于雇员的id探求雇员消息。 employee web效劳的创造进程 在这一局部,你须要开始创造一个叫作employeewebservice的新visual c# web效劳名目。名目创造之后,你须要把默许的web效劳类的名字service1改成employeeservice。接着你须要导出底下的名字空间以实行数据考察和处置xml数据。 using system.data.sqlclient; using system.xml; [webmethod] public xmldocument getempdetailsbyempid (int employeeid) { string connstring = system.configuration.configurationsettings.appsettings["connectionstring"]; sqlconnection sqlconnection = new sqlconnection(connstring); try { dataset employeedataset = new dataset("employeesroot"); //把须要实行的保存进程的名字和sqlconnection 东西动作参数传播进入 sqldataadapter adapter = new sqldataadapter(); sqlcommand command = new sqlcommand("select * from employees where employeeid ="+ employeeid.tostring(),sqlconnection); //树立sqlcommand东西的属性 command.commandtype = commandtype.text; adapter.selectcommand = command; //运用保存进程归来的值弥补数据集 adapter.fill(employeedataset,"employees" ); xmldocument xmldoc = new xmldocument(); xmldoc.loadxml(employeedataset.getxml()); return xmldoc; } catch (exception ex) { throw ex; } finally { if (sqlconnection.state == connectionstate.open) { sqlconnection.close(); } } } 属性webmethod表白该本领将动作不妨被挪用的web本领表露。在名目安置的功夫,asp.net运转时供给运用某些和议(比方xml、http和soap)在internet上挪用这个本领所须要的一切弹道消息。