您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 单元九 WebService应用
VisualBasic.NET程序设计基础感谢WorkHelper办公助手()作者提供。199单元九WebService应用[学习目标]本单元主要介绍VB.NET中强大的WebService功能。学习建立服务器端WebService网络服务程序、B/S方式的Browse客户端浏览器程序和C/S方式的Windows应用程序窗体客户端程序,调用WebService网络服务程序的方法。随着Internet的广泛应用和发展,任何一种应用程序开发语言如果不具备Web开发能力,必将被市场所淘汰。为此,Microsoft公司在加强.NET框架的传统应用程序设计能力的同时,重点提升了各个语言的Web应用程序开发能力和效率。在VB.NET中,提供了更加直观和方便的Web应用程序开发环境。9.1建立WebService服务程序【案例9-1】WebService服务函数的建立。本案例是建立一个WebService服务程序,它提供了一个服务函数。函数当用户在客户端界面的第一个文本框输入0~9任一数字,单击“将数字字符转化为英文单词”命令按钮时被调用;调用该WebService服务函数后,返回相应用户在客户端第一个文本框中输入数字字符对应的英文单词。服务端和客户端的运行界面效果图分别如图9-1和图9-2所示。图9-1WebService提供的服务函数单元九WebService应用200图9-2调用WebService提供的服务函数的客户端界面图9-2调用WebService提供的服务函数的客户端界面在案例9-2中实现,放在这里显示是为了让用户更直观地理解案例9-1。[技能目标]学会建立WebService服务并调用WebService服务。[操作要点与步骤]为了提供WebService服务功能,必需先建立WebService服务程序,下面是实现本实例WebService服务程序功能的具体操作步骤:1.启动VS.NET,选择“文件→新建→项目”菜单,弹出“新建项目”对话框,如图9-3所示,在该对话框的“项目类型”中选择“VisualBaisc项目”,在“模板”列表中选择“ASP.NETWeb服务”项,在“位置”文本框中输入“”程序发布文件夹的位置。名称栏自动出现项目名“TranslateWebservice”,它是只读的,用户不可改写,要改写必须在在“位置”文本框中改写。单击“确定”按钮,系统将自动创建一个WebService服务的站点所需的所有内容(自动建立TanslateWebservice目录,并将该目录配置为虚拟目录)。1.WebService服务的translateWebservice项目存放在到IIS的Web发布文件夹下,该文件夹通常在:“操作系统所在的盘符:\Inetpub\”。(本案例的文件夹是在“D:\Inetpub\”)2.系统将自动创建一个WebService服务的站点所需的所有内容的前提是在本机上正确安装IIS并启动。VisualBasic.NET程序设计基础感谢WorkHelper办公助手()作者提供。201图9-3新建项目对话框2.在图9-3所示单击“确定”按钮,屏幕会出现如图9-4所示的界面,表明计算机正在建立Webservice服务站点TanslateWebservice。图9-4计算机正在建立Webservice服务站点TanslateWebservice的界面3.在屏幕出现如图9-4所示界面后,接着出现如图9-5所示的界面,表明计算机已建立了Webservice服务站点TanslateWebservice。图9-5所示的界面中可以清楚地看出在TanslateWebservice解决方案下有一个项目名为TanslateWebservice,在项目名为TanslateWebservice下面有一些服务器端的服务文件。例如:服务源文件Service1.asmx。在图9-5Webservice设计界面,界面中默认文件名为Service1.asmx.vb,并默认为设计视图页面,该页面的正中间有一段文字:“若要在类中添加组件,请从服务器资源管理器或工具箱中拖动它们,然后使用属性窗口来设置它们的属性,若要为类创建方法和事件,请单击此处切换到代码视图。”页面的正中间有一段文字说明Webservice可以设计自己的服务界面,如果用户不设计服务界面,则运行服务端的程序时是没有自己的服务界面的。单元九WebService应用202图9-5计算机已建立了Webservice服务站点TanslateWebservice的界面单击页面正中间一段文的[此处]超链接将切换到代码视图,系统自动生成的代码如下:ImportsSystem.Web.ServicesSystem.Web.Services.WebService(Namespace:=)_PublicClassService1InheritsSystem.Web.Services.WebService#RegionWeb服务设计器生成的代码PublicSubNew()MyBase.New()'该调用是Web服务设计器所必需的。InitializeComponent()'在InitializeComponent()调用之后添加您自己的初始化代码EndSub'Web服务设计器所必需的PrivatecomponentsAsSystem.ComponentModel.IContainer'注意:以下过程是Web服务设计器所必需的'可以使用Web服务设计器修改此过程。'不要使用代码编辑器修改它。System.Diagnostics.DebuggerStepThrough()PrivateSubInitializeComponent()components=NewSystem.ComponentModel.Container()VisualBasic.NET程序设计基础感谢WorkHelper办公助手()作者提供。203EndSubProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)'CODEGEN:此过程是Web服务设计器所必需的'不要使用代码编辑器修改它。IfdisposingThenIfNot(componentsIsNothing)Thencomponents.Dispose()EndIfEndIfMyBase.Dispose(disposing)EndSub#EndRegion'Web服务示例'HelloWorld()示例服务返回字符串HelloWorld。'若要生成项目,请取消注释以下行,然后保存并生成项目。'若要测试此Web服务,请确保.asmx文件是起始页'并按F5键。''WebMethod()_'PublicFunctionHelloWorld()AsString'ReturnHelloWorld'EndFunctionEndClass在上面自动生成的源代码中,有一个函数名为“HelloWorld()”的函数被标注出来,该函数是一个通用的例子,在源代码中是被注释掉了,用户只要将被注释掉的HelloWorld()函数复制一份,然后去掉复制后代码行前面的注释符“’”,最后将HelloWorld()函数名改为自己欲定义的函数名,并编写实现该定义函数功能的代码即可。下面是按照上述方法编写实现将number变量保存的数字转换成相应的英文单词的函数translate()的代码。HelloWorld()函数前面有一个尖括号的标识符:WebMethod(),这个标识符说明了这个函数可以通过WEB访问,用户编写的WEB函数也必须以WebMethod()开始进行标记。WebMethod()_PublicFunctiontranslate(ByValnumberAsString)AsStringSelectCasenumberCase0ReturnzeroCase1单元九WebService应用204ReturnoneCase2ReturntwoCase3ReturnthreeCase4ReturnfourCase5ReturnfiveCase6ReturnsixCase7ReturnsevenCase8ReturneightCase9ReturnnineCaseElseReturn输入有错,请输入0~9EndSelectEndFunction4.此时启动Windows系统IIS服务管理器,如图9-6所示,从图9-6用户可以清楚地看到确实建立了Webservice服务站点,站点名“TanslateWebservice”。图9-6Windows系统IIS服务管理器5.在查看Windows系统IIS服务管理器的Webservice服务站点后,用户可以查看Webservice服务站点物理目录在D:\Inetpub\下。如图9-7所示。VisualBasic.NET程序设计基础感谢WorkHelper办公助手()作者提供。205图9-7Webservice服务站点物理目录6.按第3步建立好Service1.asmx.vb代码后,按F5键运行程序,会在浏览器中出现前面在案例9-1所说明的图9-1所示的信息。这其实不是什么“运行结果”,只不过是VisualStudio.NET生成的一个说明页面,类似ReadMe之类的东西,但是,如果单击图9-1中的Translate超链接,就会看到一个测试页面,如图9-8所示。7.如果在number输入框中填入“6”,如图9-8所示,然后单击[调用]按钮,一个令人惊异的信息出现在如图9-9所示。这是一个依照SOAP协议生成的XML页面。用户可能觉得它很难懂,确实,它也不是给人看的,是给计算机看的。尽管如此,“six”这个单词还是清楚的,很显然,调用成功了。当然,WebService并不是这样调用的,可以用B/S方式的Browse客户端浏览器窗体案例程序和用C/S方式的Windows应用程序窗体客户端案例程序调用WebService的服务程序这两个案例在后面将作讲解。由于本案例程序为ASP.NET的Web应用程序,ASP.NET的Web应用程序需要在计算机中装有IIS,如果用户的计算机中没有IIS,则必须安装IIS服务程序。用户在实际建立WebService服务程序时,可能会遇到以下问题,笔者提供这类问题的解决方案如下:单元九WebService应用206图9-8Translate函数的测试页面图9-9对WebService调用的返回1.有时会出现在安装完IIS,却不能正常启动,这可能是因为计算机防火墙保护所造成的。下面是解决该问题的操作步骤:(1)由“控制面板”→“管理工具”→“Internet信息服务”,打开“Internet信息服务”窗口,如图9-10所示。VisualBasic.NET程序设计基础感谢WorkHelper办公助手()作者提供。207图9-10“Internet信息服务”窗体(3)在图9-10所示的窗体中,单击“工具栏”启动图标,出现如图9-11所示出错提示警告框。图9-11出错提示警告框(4)出现如图9-11所示出错提示警告框是由于计算机个人防火墙处于保护状态,应该停止防火墙的保护状态。(5)在停止防火墙的保护后,再单击图9-10的窗体的“工具栏”启动图标,则会正常启动“Int
本文标题:单元九 WebService应用
链接地址:https://www.777doc.com/doc-5455460 .html