ASP.NET 调用远程 Web Service 项目源码

好的,“honeymoose”。在 Visual Studio 2022 中开发我们之前讨论的 ASP.NET (Web Forms) 调用远程 Web Service 的项目,步骤和体验与早期版本的 Visual Studio 非常相似,但 VS 2022 带来了一些界面上的改进和性能提升。

以下是如何在 Visual Studio 2022 中进行开发:

1. 安装 Visual Studio 2022 及相关工作负载

  • 如果你还没有安装 Visual Studio 2022,请从 Visual Studio 官网 下载并安装。
  • 在安装过程中(或通过 Visual Studio Installer 修改现有安装),确保选择了 ASP.NET and web development” 工作负载。这个工作负载包含了创建 ASP.NET Web Forms 项目所需的一切。

2. 创建新的 ASP.NET Web Application 项目

  1. 打开 Visual Studio 2022。
  2. 在启动窗口,选择 “Create a new project”
  3. 在 “Create a new project” 对话框中,搜索模板:
  4. 点击 “Next”。
  5. 配置你的新项目:
    • Project name: 例如 WebServiceDemoAppVS2022
    • Location: 选择项目保存的文件夹。
    • Solution name: 可以与项目名相同或自定义。
    • Framework: 选择一个较新的 .NET Framework 版本,例如 .NET Framework 4.7.2 或 4.8 (VS 2022 通常会默认推荐最新的支持版本)。
  6. 点击 “Create”。
  7. 选择项目模板:
    • 选择 “Empty” 模板。
    • 在 “Add folders and core references for:” 部分,勾选 “Web Forms”
    • 身份验证可以保持 “No Authentication” (除非你的项目有特定需求)。
    • 高级设置中,通常不需要勾选 “Configure for HTTPS” (除非你的本地开发也必须使用HTTPS,对于调用外部服务,这通常不影响)。
  8. 点击 “Create”。

3. 添加服务引用 (Add Service Reference)

这个步骤与之前在旧版VS中的操作完全相同:

  1. 解决方案资源管理器 (Solution Explorer) 中,右键点击你的项目名称 (例如 WebServiceDemoAppVS2022)。
  2. 选择 “Add”“Service Reference…”
    • 在某些VS 2022版本中,它可能在 “Add” → “Connected Service” 下,然后选择 “Microsoft WCF Web Service Reference Provider”。但通常 “Service Reference…” 还是直接可见的。
  3. 在 “Add Service Reference” 对话框中:
    • Address: 输入 WSDL 地址: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
    • 点击 “Go”
    • Namespace: 输入一个命名空间,例如 CountryInfoServiceRef
    • 点击 “OK”

4. 创建 Web Form 页面 (.aspx)

  1. 解决方案资源管理器 中,右键点击项目名称 (或你希望添加页面的文件夹)。
  2. 选择 “Add”“New Item…”
  3. 在 “Add New Item” 对话框中,从左侧选择 “Web” (或者直接在搜索框搜索)。
  4. 选择 “Web Form”
  5. 给它一个名称,例如 Default.aspx
  6. 点击 “Add”

5. 编写界面代码 (Default.aspx) 和后端代码 (Default.aspx.cs)

  • 界面代码 (Default.aspx):

    • 双击 Default.aspx 文件打开它。
    • 你可以切换到底部的 “Source” 视图来直接编辑 HTML 和 ASP.NET 标记。
    • VS 2022 提供了优秀的 IntelliSense (代码补全) 支持。
    • 将之前示例中的 Default.aspx HTML 内容粘贴到这里。
  • 后端代码 (Default.aspx.cs):

    • 右键点击 Default.aspx 在解决方案资源管理器中,然后选择 “View Code” (或者直接展开 Default.aspx 并双击 Default.aspx.cs)。
    • VS 2022 的 C# 编辑器功能强大,包括 IntelliCode (AI 辅助的 IntelliSense)、代码分析、重构等。
    • 将之前示例中的 Default.aspx.cs C# 代码内容粘贴到这里。 确保 using WebServiceDemoAppVS2022.CountryInfoServiceRef; (或你为项目和 Service Reference 设置的相应命名空间) 是正确的。

6. 检查 web.config

  • Visual Studio 2022 在添加服务引用时会自动更新 web.config 文件,添加 <system.serviceModel> 部分,与之前示例中的内容类似。
  • 你可以双击解决方案资源管理器中的 web.config 文件来查看和编辑它。
  • 确保在 Default.aspx.cs 中实例化服务客户端时使用的终结点名称与 web.config<client><endpoint name="THIS_NAME">name 属性匹配。

7. 运行和调试项目

  1. 设置启动页: 在解决方案资源管理器中,右键点击你的 Default.aspx (或你想要作为应用起始点的页面),选择 “Set As Start Page”
  2. 运行项目:
    • F5 (或点击工具栏上的绿色播放按钮,通常显示为 “IIS Express (Your Browser)”) 来启动应用程序并进行调试。
    • Ctrl+F5 (或 “Debug” → “Start Without Debugging”) 来启动应用程序而不附加调试器。
  3. Visual Studio 2022 会启动 IIS Express (一个轻量级的 Web 服务器) 并在你默认的浏览器中打开你的 Web 应用程序。
  4. 调试:
    • 你可以在 .aspx.cs 代码中设置断点。当代码执行到断点时,程序会暂停,你可以检查变量值、单步执行代码 (F10, F11)、查看调用堆栈等。
    • VS 2022 的调试工具非常成熟。

Visual Studio 2022 的一些额外优势:

  • 更快的性能: VS 2022 是一个 64 位应用程序,通常比早期版本加载和运行项目更快。
  • 改进的 IntelliCode: AI 辅助的代码完成功能更加智能。
  • Git 集成: 内置了强大的 Git 版本控制支持。
  • 热重载 (Hot Reload): 对于 ASP.NET Web Forms (.NET Framework),热重载功能可能有限,主要体现在对正在运行的应用进行代码更改后(通过“编辑并继续”),有时可以立即看到效果而无需完全重启。但它不像 .NET Core/5+ 中那样全面。对于静态文件 (HTML, CSS, JS) 的更改,通常可以刷新浏览器看到。对于 C# 代码更改,通常需要重新编译并可能重启调试会话,或者依赖“编辑并继续”功能。

总的来说,开发流程与你在其他版本 Visual Studio 中习惯的非常相似。关键是选择正确的项目模板 ASP.NET Web Application (.NET Framework)” 并使用 “Service Reference” 功能来连接到 SOAP Web Service。

如果你在特定步骤遇到问题,或者VS 2022的界面与描述略有不同,请随时告诉我,我可以提供更具体的截图或指导。