【发布时间】:2009-07-07 11:28:08
【问题描述】:
我有一个“简单”的任务。我有一个现有项目,其中包含一个用 C# 编写的 Web 服务,它有一个方法可以将一个巨大的 XML 文件发送到客户端。 (这是存储在服务器上的数据的备份文件,需要发送到其他地方。)该服务还设置了一些额外的身份验证/授权。 我有一个现有的 WIN32 的 Delphi 2007 应用程序,它调用 Web 服务来提取 XML 数据以进行进一步处理。这是一个无需安装 .NET 即可运行的遗留系统。 唯一的问题:XML 文件很大(至少 5 MB),需要作为一个整体发送。由于系统要求,我不能把它分成多个部分。而且我不允许对 C# 或 Delphi 代码进行重大更改。 (我只能更改客户端和服务器上的方法调用。)而且我不能花费超过 8(工作)小时来提出更好的解决方案,否则事情将保持不变。
我要添加的修改是压缩 XML 数据(将其减少到大约 100 KB),然后将其作为二进制流发送到客户端。然后 Delphi 代码应该接受这个传入的流并再次解压缩 XML 数据。现在,对现有代码进行最少的更改,应该如何完成?
(是的,我过去编写了原始客户端和服务器,它从来没有打算一次发送那么多数据。不幸的是,从我那里接手它的开发人员有其他想法,做了一些愚蠢的改变,确实更多的损坏并在我的钢头靴子连接到他的背后之前离开了公司,所以现在我需要修复一些东西。与需要恢复的其他损坏相比,修复此 Web 服务的优先级非常低。)
服务器代码基于遗留的 ASMX 东西,客户端代码是 Delphi SOAP 导入的结果,并进行了一些额外的修改。 XML 是 3000 多个用户的每日更新,这在当前设计中恰好是巨大的。我们正在努力,但这需要时间。有更重要的项目需要先解决,但正如我所说,有少量时间可以快速解决此问题。
【问题讨论】:
-
你还没有说你是使用 WCF 还是传统的 ASMX 技术。
-
在备份服务器的其余文件时,为什么不直接备份那个 XML 文件呢?为什么要特别对待?您正在备份服务器,不是吗?
标签: c# .net delphi winapi soap