|
利用FrontPage来使用XML Web Service本文关键字 理论探讨 广告 利用FrontPage来使用XML Web Service Jimco 摘要:学习如何利用 FrontPage 来使用 Microsoft .NET XML Web Service。 请从 MSDN Code Center(英文)下载 FPWebSvc.exe 示例文件。 XML Web Service 本文中,我们将使用 Microsoft GotDotNet Web 站点上的 EightBall Web 服务。我们将创建一个 Web 页,该页将向 EightBall Web 服务发送请求。EightBall Web 服务将接受并处理请求,并发回一个响应,可以在我们的 Web 页上显示该响应。这个使用 Web 服务的响应的过程就是所谓的“使用”Web 服务。 使用 Web 服务的要求 要利用 FrontPage 来使用 Web 服务,您需要具备: Microsoft .NET Framework 软件开发工具包 (SDK) Microsoft Internet Information
Services 如果在安装了 .NET Framework SDK 之后安装 IIS,您需要运行 .NET Framework 目录中的 Aspnet_regiis.exe 来安装 ASP.NET 支持。详细信息请参阅 Microsoft Knowledge Base(英文)。 Web 服务代理 ASP.NET Web 窗体 为使用 Web 服务做准备 检查 Web 服务。 图 1:用于 Ask 操作的 HTTP Post 信息 如果单击指向 Ask 操作的链接,将会看到 SOAP 请求和 Web 服务响应的实例。如果检查该请求和响应,将会发现 Ask 操作要求传递给它一个字符串(注意 HTTP POST 段中的“psQuestion=string”文本)并返回一个字符串。该页上包括一个文本框,可以在其中键入问题并接收来自 EightBall Web 服务的 XML 格式的回答。 要在 FrontPage 中设计界面来使用该 Web 服务,需要使用该信息。通过检查 Web 服务入口点的信息,我们断定需要设计一个窗体,窗体上要有一个文本框用于输入问题,并且要有一个按钮用来向 Web 服务提交问题。然后需要提供一个页面元素来包含从 Web 服务返回的回答。以后我们将深入讨论。现在,我们需要生成源程序代码,用来编译 Web 服务代理类。 生成源代码文件 要生成代理类的源代码文件,我们将使用 Web 服务说明语言实用程序,即 WSDL.exe。(详细信息,请参阅 http://www.w3.org/TR/wsdl [英文]。)您可以在安装了 .NET Framework SDK 的目录中找到该实用程序。(默认情况下,该实用程序将被安装在 c:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin 文件夹中。)WSDL.exe 允许我们为代理类创建源文件。 生成源文件之前,请在驱动器 C 的根目录中创建一个用于 Web 服务文件的目录。将该目录命名为 8Ball。创建该目录后,我们就可以生成使用 EightBall Web 服务所必需的文件了。 要生成源代码文件: 单击“开始”,指向“程序”,指向“附件”,单击“命令提示符”打开命令提示符窗口。 /l - 此开关指定源文件的语言。本例中,我们指定 Visual Basic 语言。也可以指定 CS (C#) 语言,这将生成 C# 源文件。 /o - 此开关指定输出文件的名称。Visual Basic 源文件应该具有 .vb 文件扩展名。C# 源文件应具有 .cs 文件扩展名。 注意:使用 /? 开关可以获得关于 WSDL 的详细信息。 现在我们已经成功地生成了用于编译 Web 服务代理类的 Visual Basic .NET 源代码文件。 编译 Web 服务代理 要编译代理类,请在打开的命令提示符下键入: Vbc /t:library /out:c:\8Ball\8BallClient.dll /r:System.dll
/r:System.XML.dll /r:System.Web.Services.dll
c:\8Ball\8Ball.vb /t - 此开关指定要生成的程序集类型。本例中,我们要编译 DLL 文件,所以指定程序集类型为 library。 /out - 此开关指定输出文件的名称。因为我们指定了 library 的程序集类型,因此输出文件名称必须具有 .dll 文件扩展名。 /r - 此开关指定程序集的引用。本例中,我们引用三个 Microsoft .NET 命名空间,所有的 Web 服务代理客户端都需要这三个命名空间。它们是 System、System.XML 和 System.Web.Services 命名空间。 编译器完成代理类的编译后,驱动器 C 的 8Ball 目录中就有了名为 8BallClient.dll 的文件。这就是代理客户端。稍后我们将把它移动到正确的位置。您可以关闭命令提示符窗口,我们将继续创建用于与 EightBall Web 服务进行交互的界面。 设计 ASP.NET 界面 设计 ASP.NET 界面之前,需要创建一个 FrontPage 项目。创建新的单页 Web 站点并命名为 8Ball。必须在安装了 ASP.NET 的 Web 服务器上创建该站点,这点很重要。 创建了 8Ball 站点后,需要确保将其标记为应用程序的根。步骤如下: 单击“开始”,指向“设置”,单击“控制面板”来打开控制面板。 用户界面中将使用三个 ASP.NET Web 窗体控件。TextBox 控件用于输入 EightBall Web 服务的问题,Button 控件用于初始化对 Web 服务的请求,而 Label 控件用于显示从 Web 服务收到的回答。所有这些控件都包含在 ASP.NET 窗体中。 使用 Microsoft Visual Studio .NET 来设计 Web 窗体非常容易,只需要拖放窗体元素并在用户界面中设置这些元素的属性即可。本例中,我们没有使用 Visual Studio .NET,所以不得不通过手动编码生成窗体元素。 创建 Web 窗体 <form runat="server"> 此时,应保存本页面并继续以下步骤。将页面保存为 8ball.aspx。 添加 ASP.NET Web 窗体控件 首先,添加 TextBox 控件。这是 Web 页用户输入 EightBall Web 服务问题的地方。要添加 TextBox 控件,请在开始和结束 <form> 标记之间添加以下代码: <asp:TextBox id="tbQuestion"
runat="server"/> 将其余代码添加到页面中,窗体代码将如下所示: <form runat="server"> 连接 Web 服务 创建代理客户端类的实例。 <script runat="server"> <script> 标记是一个基本脚本标记,但向其添加 runat="server" 以后便可以在服务器上处理它。然后定义 getAnswer 过程。请注意这个程序需要两个参数:sender 和 e。这是 Microsoft .NET 事件处理程序所需要的签名。 接下来,创建代理客户端类的实例。我们怎么知道该类名为 EightBallWS?使用记事本检查用 WSDL 创建的 Visual Basic 源文件,会看到以下代码: Public Class
EightBallWS 接下来,创建一个字符串值 (strAnswer) 来容纳 Web 服务返回的回答。请记住我们之前检查过 Web 服务,并曾确定有一个名为 Ask 的操作,该操作接受字符串参数并返回一个字符串。 然后,通过调用 Web 服务的 Ask 操作并将我们的问题传递给该操作,为 strAnswer 赋值。 strAnswer = clsEightBall.Ask(tbQuestion.Text)
剩下要做的事情就是显示我们检索的答案。要完成此操作,需要将 strAnswer 中包含的值赋给 Label 控件的 Text 属性。 lblAnswer.Text = strAnswer 复制代理类 在 FrontPage 站点中创建新文件夹并命名为 bin。 图 2:操作中的 EightBall Web 服务 小结 使用简单的 Web 服务(例如 EightBall Web 服务)是非常容易的。如果希望使用复杂的 Web 服务,您可能需要考虑使用 Microsoft Visual Studio .NET,因为它提供了强大的工具集,可用于使用 Web 服务,并可以在所见即所得 (WYSIWYG) 的环境中设计 ASP.NET Web 窗体。 如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amteam.org | 021-51096826-112 | 在线联系 |
前沿论丛2009年第三期——知识管理..国内中小企业普遍存在管理基础薄弱、规范化程度低、信息化基础差等方面的问题,而知识管理的实施难度甚至要高于ERP的实施,因为简单的从上而下压迫式的推行只能做到知识…… |
|
|