下面的演练描述了从用 Visual Basic 或 Visual C# 创建的应用程序中访问 Web 服务的过程。

在本演练中,将完成以下操作:

  • 使用 ASP.NET Web 应用程序项目模板创建客户端应用程序。
  • 为 Web 服务添加 Web 引用。
  • 编写用来访问 Web 服务的代码。
  • 在调试模式下运行 Web 应用程序。
  • 部署 Web 应用程序。

要完成演练,必须提供以下内容:

  • 由于本演练使用 Web 应用程序来访问 Web 服务,因此您必须提供一台能够满足 Web 项目创建要求的计算机。若要在 Web 服务器所在的计算机上创建 Web 服务项目,您同样需要具有足够的权限。
  • 从以下演练创建的 Web 服务:

  创建 Web 服务客户端项目

在本演练中,您将创建一个访问 TempConvert1 Web 服务的简单 Web 应用程序,TempConvert1 是赋予演练:使用 Visual Basic 或 Visual C# 创建 Web 服务 中创建的 Web 服务的名称。

说明:

如果在创建温度转换 Web 服务后更改了它的名称,那么,在整个演练过程中,只需将所显示的 TempConvert1 名称替换为相应的名称即可。

创建 ASP.NET Web 应用程序
  1. “文件”菜单上,选择“新建网站”
  2. “新建网站”对话框中,选择“ASP.NET 网站”图标。
  3. 输入要在其中开发 Web 应用程序的 Web 服务器地址,并指定 TempConvertClient1 作为目录名,如“http://MyServer/TempConvertClient1”。默认情况下,项目使用本地计算机“http://localhost”。
    说明:

对于某些项目类型,“名称”文本框不可用,因为在指定位置时就设置了项目名。例如,Web 应用程序和 Web 服务位于 Web 服务器上,并从该服务器上指定的虚拟目录导出它们的名称。

说明:

您在开发服务器上开发 Web 应用程序。默认情况下,开发服务器是本地计算机。通常在开发服务器上开发和生成项目,然后使用部署项目将其部署到承载该 Web 应用程序的另一服务器(部署服务器)上。但是,如果直接在将承载该 Web 应用程序的服务器上进行开发,则开发服务器与部署服务器相同。

  1. 单击“确定”创建项目。
  2. 在“解决方案资源管理器”中,右击 Default.aspx 并选择“视图设计器”以打开设计器。
  3. “工具箱”“Web 窗体”选项卡中,将“文本框”“标签”“按钮”拖到 Default.aspx 的设计图面上,然后按您的喜好排列它们。
  4. 右击您添加的按钮 Button1,然后在快捷菜单上单击“属性”。在“属性”窗口中,将 Text 属性设置为 Convert
  5. 右击您添加的标签 Label1,然后在快捷菜单上单击“属性”。在“属性”窗口中,清除 Text 属性以使此标签成为空白标签。

  添加 Web 引用

Web 服务发现是客户端查找 Web 服务并获取其服务说明的过程。Visual Studio 中的 Web 服务发现过程涉及按照预先确定的算法查询网站。该过程的目的是定位服务说明,服务说明是使用 Web 服务描述语言 (WSDL) 的 XML 文档。有关更多信息,请参见 XML Web services 发现

服务说明描述哪些服务可用以及如何与这些服务交互。没有服务说明便无法以编程方式与 Web 服务交互。有关更多信息,请参见 XML Web services 说明

应用程序必须具有与 Web 服务通信和在运行时找到该服务的方法。在为 Web 服务添加对项目的 Web 引用的过程中,将通过生成一个代理类来完成此操作,该代理类与 Web 服务交互并提供 Web 服务的本地表示形式。有关更多信息,请参见Visual Studio 中的 Web 引用如何:生成 Web 服务代理

添加 Web 引用
  1. “网站”菜单上,选择“添加 Web 引用”。
  2. 在“添加 Web 引用”对话框的“URL”框中,键入 URL 以获得要访问的 Web 服务的服务说明,如 http://localhost/TempConvert1/Service1.asmx。然后单击“转到”按钮以检索有关该 Web 服务的信息。
    - 或 -
    如果该 Web 服务位于本地计算机上,请单击浏览器窗格中的“本地计算机上的 Web 服务”链接。然后,从所提供的列表中单击 TempConvert1 Web 服务链接以检索有关该 Web 服务的信息。
  3. “Web 引用名”框中,将 Web 引用重命名为 ConvertSvc(它就是将用于该 Web 引用的命名空间)。
  4. 单击“添加引用”为目标 Web 服务添加 Web 引用。有关更多信息,请参见 如何:添加和移除 Web 引用
    Visual Studio 将下载服务说明并生成一个作为应用程序和 Web 服务之间接口的代理类。

  访问 Web 服务

一旦将 Web 服务的引用添加到项目中,下一步就是创建 Web 服务代理类的实例。然后就可以按照与访问任意对象的方法相同的方式,通过调用代理类中的方法来访问 Web 服务的方法。当应用程序调用这些方法时,由 Visual Studio 生成的代理类代码将处理应用程序与 Web 服务之间的通信。

首先,创建 Web 服务代理类的实例。接下来,将接受一个在 TextBox1 中提供的值,然后使用该代理类对 Web 服务的 ConvertTemperature 方法进行调用。然后在 Label1 中显示从 Web 服务中返回的值。

访问 Web 服务
  1. WebForm1.aspx 上双击“转换”按钮,为该按钮创建事件处理方法并显示代码隐藏文件。
  2. 输入下列代码:复制代码
1. ' Visual BasicProtected Sub Button1_Click(ByVal sender As Object, _  ByVal e as EventArgs) Handles Button1.Click    Dim ws As New ConvertSvc.Service    Dim dFahrenheit As Double    Dim dCelsius As Double
    Try
        dFahrenheit = Convert.ToDouble(TextBox1.Text)
        dCelsius = ws.ConvertTemperature(dFahrenheit)
        Label1.Text = dCelsius.ToString()
    Catch
        Label1.Text = "Conversion failed."
    End Try
End Sub

// C#
protected void Button1_Click (System.Object sender, System.EventArgs e)
{
   try
   {
      ConvertSvc.Service1 ws = new ConvertSvc.Service1();
      double dFahrenheit = Convert.ToDouble(TextBox1.Text);
      double dCelsius = ws.ConvertTemperature(dFahrenheit);
      Label1.Text = dCelsius.ToString();
   }
   catch
   {
      Label1.Text = "Conversion failed.";
   }
}说明:

添加 Web 引用时生成的 Web 服务类的名称可能与上面显示的 Service1 名称不同。

  1. 在解决方案资源管理器中,选择 Default.aspx
  2. “网站”菜单中单击“设为起始页”
  3. 保存解决方案。

有关更多信息,请参见 如何:在托管代码中访问 Web 服务

  调试 Web 服务客户端

Visual Studio 提供了若干方法,用于从 IDE 生成并运行 Web 应用程序,如:

  • 开始执行(带调试)
  • 开始执行(不调试)
  • 在浏览器中查看

作为 Visual Studio 项目,此 Web 应用程序的发行版本和调试版本的配置不同。由于创建此项目时使用的是 ASP.NET Web 应用程序项目模板,因此 Visual Studio 自动创建这些配置并设置适当的默认选项和其他设置。有关更多信息,请参见 如何:设置调试和发布配置

本演练中,您将在 Button1_Click 事件中放置一个断点,并将使用“开始执行(带调试)”方法。有关更多信息,请参见 如何:调试托管代码中的 Web 服务

调试前,请验证调试设置。有关更多信息,请参见 调试准备:ASP.NET Web 应用程序

使用断点和启动 Web 应用程序,并进行调试
  1. “调试”菜单上单击“新建断点”,然后选择“在函数处中断”
    在 Function 框中键入 Button1_Click,并单击“确定”,从而将断点放在 Button1_Click 事件处理程序上。有关更多信息,请参见断点概述
  2. “调试”菜单上单击“启动”,然后在“未启用调试”窗口中单击“确定”以启动调试。
    该命令指示 Visual Studio 在调试器中运行 Web 应用程序。Visual Studio 生成项目并将其部署到指定的开发服务器中。完成后,将启动默认浏览器并导航到部署服务器上的 .aspx 文件。
  3. 当页显示在浏览器中之后,在文本框中键入数字 212,然后单击“转换”按钮。
    当处理到达 Button1_Click 事件处理程序时,处理停止。Visual Studio 调试器突出显示包含断点的行,在该调试器暂停时,您可以执行各种任务。有关更多信息,请参见调试器指南查看调试器中的数据
  4. “调试”菜单上单击“继续”可继续进行处理。
  5. Web 服务以返回转换值的形式做出响应,并且应用程序将 Label1 的文本设置为 100
    若要停止运行该 Web 应用程序并返回到代码编辑器中,请在“调试”菜单上单击“停止调试”。
  6. “调试”菜单上单击“清除所有断点”。

  部署客户端

若要使 Web 应用程序可由他人使用,必须将其部署到客户端(您希望支持该客户端进行访问)可访问的 Web 服务器。若要将 Web 应用程序部署到开发服务器以外的服务器,可以添加 Web 安装项目或者将所需的文件复制到目标服务器。本演练中,可以选择如何部署此 Web 应用程序。有关更多信息,请参见 部署应用程序和组件

使用 Web 安装项目部署 Web 应用程序
  1. “文件”菜单上,指向“添加”,再单击“新建项目”
  2. 选择“其他”节点,再选择“安装和部署项目”节点,再单击“Web 安装项目”。
  3. “名称”框中,键入 TempConvertClient1WebSetup,再单击“确定”。
    说明:

默认情况下,在部署服务器上创建虚拟目录时,安装程序将使用部署项目名称。

  1. “文件系统编辑器”的左窗格中选择“Web 应用程序文件夹”。有关更多信息,请参见文件系统编辑器
  2. 在解决方案资源管理器中右击 TempConvertClient1WebSetup,指向“添加”,再单击“项目输出”。
  3. “添加项目输出组”对话框中,选择“内容文件”。有关更多信息,请参见 如何:在文件系统编辑器中添加和移除项目输出
  • “内容文件”组由 Web 应用程序的其余文件(如 WebForm1.aspx 和 Web.config)组成。
  1. 单击“确定”。
  2. 在解决方案资源管理器中右击 TempConvertClient1WebSetup 项目,然后在快捷菜单上单击“生成”。
    该操作将在本地项目目录中创建一个 Windows Installer 文件。执行该文件即可安装 Web 应用程序。
通过复制项目来部署 Web 应用程序
  1. 在“解决方案资源管理器”中,选择 TempConvertClient1 项目。
  2. “项目”菜单上单击“复制网站”
  3. 单击“连接到”下拉框旁边的图标来打开“打开网站”对话框。浏览到要复制项目的目标位置。
  4. 在“源网站”窗格中,选择要复制的文件,并通过单击右箭头图标将它们移到“远程网站”窗格中。
  5. 单击“复制网站”以复制该网站。

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6