基于Windows和Web服务的客户端与服务器连接系统

在现代信息技术领域,客户端与服务器之间的稳定连接对于数据传输和业务流程至关重要。本文将介绍一个利用Windows服务Web服务实现客户端PC与服务器连接的系统。该系统不仅能够处理网络问题,还能支持并行请求,从而提高数据处理的效率和可靠性。

该系统的构想源于作者在餐厅呼叫中心下单时遇到的网络问题。为了解决这些问题,作者提出了一种使用XML文件的方法,以避免网络问题并支持并行请求。

使用的技术

系统的核心操作依赖于Windows服务和Web服务。用户界面、监控和通知功能则通过Windows应用程序实现。系统在以下环境中进行了测试并表现良好:

  • 操作系统:Microsoft Windows XP
  • 编程语言:C#
  • 运行时环境:Microsoft CLR 1.1
  • 开发工具:Visual Studio.NET 2003

系统结构

系统的工作流程可以分为以下几个部分:

当在服务器1的[Send folder]中完成操作并释放文件后,服务器1尝试通过Web服务将数据发送到目标服务器。如果发送失败,数据将被发送到“重试系统”,该系统与基础系统并行工作。

重试系统会尝试发送数据n次,如果失败,则将数据发送到传真系统。如果传真系统也失败,数据将被转储到失败文件夹,并生成报告。

如果发送成功,客户端计算机上的Web服务将数据转储到客户端的[received folder]或服务器2的[received folder]。完成此操作后,客户端计算机上的文件监视器将获取[received folder]中接收到的文件,并执行相应的操作。

服务器2或客户端计算机将文件发送到[send folder]。Windows服务文件监视器捕获它,并尝试调用服务器1上的Web服务,就像在服务器1上执行的操作一样。当服务器1的Windows服务接收到服务器2通过Web服务发送的文件时,将根据接收到的数据执行相应的操作。

监控和通知系统

系统分为两个部分:

包括Windows服务Web服务

包括Windows应用程序,用于监控和通知。

监控应用程序用于控制Windows服务(停止/运行),监控客户端连接性(通过调用Web服务上的函数“是否连接”),并定义重试系统值、发送和接收文件夹路径、注册服务器(名称和IP)等配置。

通知系统内置于监控系统内,通过文件监视器在文件夹(通知)上捕获事件,然后通知用户。用户可以通过INI文件自定义通知,包括图像、延迟等。

代码使用

以下是如何使用代码的简要说明:

C# // 1) 在 winServiceAndWindowsInterface 应用程序中,重载了 Notify 以便于使用,它接受一个结构体,包含所有事件属性 例如: // 创建结构体对象并填充事件信息 StructDisplayInfo inInfo = new StructDisplayInfo(); inInfo.initilize(); // 设置一些属性 inInfo.popupTitle = title; inInfo.popupPrifeInfo = prifeInfo; // 选择类型(通知/警告/错误) inInfo.TypeInt = (int) StructDisplayInfo.Typeenum.Notify; // 实际显示 NotifyMe myNotify = new NotifyMe(inInfo);

项目设置步骤

要设置此项目,需要执行以下步骤:

  1. 将文件夹 Server1 放置在 c: 盘上(稍后可以配置)。
  2. 从 c:\Server1\Settings\,可以配置与系统相关的所有路径和设置,包括两个INF文件:“MonitorConfigrations.ini”用于监控系统和通知,以及监控数据库连接字符串(数据库附加在:Server1\Database\myDatabase_Data.MDF);“inf.ini”用于服务器、重试和其他核心设置。
  3. 在SQL服务器上设置数据库(用于记住错过的事件),一个表,所以可以将其与已经制作的数据库连接,并在“MonitorConfigrations.ini”上设置其连接字符串。
  4. 设置Windows服务:“Server1WindowsSevice.exe”使用 .NET Tools 支持的 Installutil.exe。
  5. 在IIS上或另一台机器上设置XMLWeb服务(并记得将其发送到 inf.ini)。
  6. 然后运行Windows服务...它应该可以正常工作。
  7. 关于用户界面,它在这个文件上:“winServiceAndWindowsInterface.exe”。可以轻松运行它。它将出现在任务栏上,并控制和监控工作。

项目要点

该项目完全动态,特别是在检查所有服务器的状态时使用多线程,同时检查它们(不是顺序的)。还与服务器和Windows/Web服务进行交互,并在连接失败时控制和重试等。

作者正在考虑以下方面的改进:

  • 增强Windows应用程序的用户界面
  • 包括客户端PC的用户界面
  • 增强事件通知系统
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485