本文介绍ASP.NET构造XML Web服务,XML Web服务的真正的强大的功能只有等你研究了基础结构以后才能领悟。
运用ASP.NET结构一个简略的XML Web服务是相对简单的,但是,XML Web服务的真实的强壮的功用只需等你研讨了根底结构今后才干领会。XML Web服务是建立在.NET结构和公共言语运转时刻根底上的。一个XML Web服务可以运用这些技能。例如,ASP.NET支撑的功用、状况办理和验证全都可被用来结构XML Web服务。
XML Web服务的根底结构是构建来契合象SOAP、XML和WSDL这样的行业规范,而且它答应其他的渠道的客户端与XML Web服务互操作。只需一个客户端可以发送契合规范的SOAP音讯、根据格式化的服务描绘,那么这个客户端可以调用一个运用ASP.NET创立的XML Web服务(不论客户端存在于何种渠道)。
当你运用ASP.NET结构一个XML Web服务时,它主动支撑客户端运用SOAP、HTTP-GET和HTTP-POST协议通讯。即便HTTP-GET和HTTP-POST支撑运用URL编码的变量名/变量值对来传送音讯,支撑这两个协议的数据类型也没有支撑SOAP协议的数据类型丰厚。在SOAP中,运用XML把数据传送到XML Web服务或从XML Web服务取回音讯,你可以运用支撑丰厚的数据类型集的XSD形式界说杂乱的数据类型。运用ASP.NET结构一个XML Web服务的开发者不用明确地界说杂乱的数据类型。他们可以只结构一个办理类。ASP.NET处理界说到一个XSD形式的映射类和到XML数据的映射目标实例,以便经过网络传输。
重要的是要注意XML Web服务并不能替代DCOM,咱们应该说XML Web服务是跨过运用行业规范的渠道通讯的一种音讯传递根底结构。
由于ASP.NET供给了为XML Web服务内部作业的根底结构,开发者可以集中精力来完成他们的特定的XML Web服务的功用。运用ASP.NET开发一个XML Web服务从下面三步开端:
1. 创立一个带有.asmx扩展名的文件。
2. 在这个文件里边,运用一条指令声明XML Web服务。
3. 界说组成XML Web服务功用的XML Web服务办法。
XML Web服务是一个强壮的技能,用于供给可经过因特网变成拜访的服务。下面的主张将协助你创立高效的XML Web服务:
XML Web服务既支撑同步的又支撑异步的客户端和寄存XML Web服务的服务器之间的通讯。在同步通讯情况下,客户端发送一个对服务的恳求到服务主机服务器上等候呼应。这防止客户端在等候成果的时分,履行其它的操作。但是异步通讯导致客户端在等候相应的时分持续处理其它的使命。客户端在可用的时分呼应服务恳求的成果。
当你运用Web服务描绘言语东西(Wsdl.exe)来创立你的署理类的时分,它发生类中的办法的规范的、同步版别和异步版别。异步版别由两个办法组成,称为Begin和End。Begin办法用于初始化XML Web服务,而End办法获得成果。
运用异步通讯可以改进体系运用率和防止客户端在它等候XML Web服务成果的时分的推迟。
下面的代码示例显现怎么从一个客户应用程序发生一个到XML Web服务
- <%@PageLanguage="C#"%>
- <%@ImportNamespace="System.Net"%>
- <html>
- <scriptlanguagescriptlanguage="C#"runat="server">
- voidEnterBtn_Click(ObjectSrc,EventArgsE)
- {
- MyMath.Mathmath=newMyMath.Math();
- //CalltoAddXMLWebservicemethodasynchronously
- //andthenwaitforittocomplete.
- IAsyncResultresult=
- math.BeginAdd(Convert.ToInt32(Num1.Text),
- Convert.ToInt32(Num2.Text),
- null,
- null);
- //Waitforasynchronouscalltocomplete.
- result.AsyncWaitHandle.WaitOne();
- //CompletetheasynchronouscalltoAddXMLWebservicemethod.
- floattotal=math.EndAdd(result);
- //DisplayresultsinaLabelcontrol.
- Total.Text="Total:"+total.ToString();
- }
- </script>
- <body>
- <formactionformaction="MathClient.aspx"runat=server>
- <fontfacefontface="Verdana">
- Enterthetwonumbersyouwanttoaddandthenpress
- theTotalbutton.
- <p>
- Number1:
- <asp:textboxidasp:textboxid="Num1"
- runat=server/>
- +
- Number2:
- <asp:textboxidasp:textboxid="Num2"
- runat=server/>
- =
- <asp:buttonidasp:buttonid="Total_Button"
- text="Total"
- OnClick="EnterBtn_Click"
- runat=server/>
- <p>
- <asp:labelidasp:labelid="Total"runat=server/>
- </font>
- </form>
- </body>
- </html>
- [VisualBasic]
- <%@PageLanguage="VB"%>
- <%@ImportNamespace="System.Net"%>
- <html>
- <scriptlanguagescriptlanguage="VB"runat="server">
- SubEnterBtn_Click(SrcAsObject,EAsEventArgs)
- DimmathAsNewMyMath.Math()
- 'CalltoAddXMLWebservicemethodasynchronously
- 'andthenwaitforittocomplete.
- DimresultAsIAsyncResult=_
- math.BeginAdd(Convert.ToInt32(Num1.Text),_
- Convert.ToInt32(Num2.Text),_
- Nothing,_
- Nothing)
- 'Waitforasynchronouscalltocomplete.
- result.AsyncWaitHandle.WaitOne()
- 'CompletetheasynchronouscalltoAddXMLWebservicemethod.
- DimaddtotalAsSingle=math.EndAdd(result)
- 'DisplayresultsinaLabelcontrol.
- Total.Text="Total:"&addtotal.ToString()
- EndSub
- </script>
- <body>
- <formactionformaction="MathClient.aspx"runat=server>
- <fontfacefontface="Verdana">
- Enterthetwonumbersyouwanttoaddandthenpress
- theTotalbutton.
- <p>
- Number1:
- <asp:textboxidasp:textboxid="Num1"
- runat=server/>
- +
- Number2:
- <asp:textboxidasp:textboxid="Num2"
- runat=server/>
- =
- <asp:buttonidasp:buttonid="Total_Button"
- text="Total"
- OnClick="EnterBtn_Click"
- runat=server/>
- <p>
- <asp:labelidasp:labelid="Total"runat=server/>
- </font>
- </form>
- </body>
- </html>
以上介绍ASP.NET结构XML Web服务
【修改引荐】
- ASP.NET的DataList和Repeater控件
- 浅析ASP.NET的IIS映射
- 概述ASP.NET状况类型
- 浅谈ASP.NET和Web服务器
- ASP.NET的EnableViewState特点
知优网 » ASP.NET结构XML Web服务(asp生成xml)