我有一個「簡單」任務。我有一個使用C#編寫的Web服務的現有項目,該項目有一個將大量XML文件發送到客戶端的方法。 (這是存儲在服務器上的數據的備份文件,需要在其他地方發送。)此服務還設置了一些額外的認證/授權。 我有一個WIN32的現有Delphi 2007應用程序,它調用Web服務來提取XML數據以供進一步處理。這是一個遺留系統,無需.NET安裝即可運行。 唯一的問題:XML文件是巨大的(至少5 MB),需要作爲一個整體發送。由於系統要求,我不能把它分成多個部分。我不允許對C#或Delphi代碼進行重大更改。 (我只能改變客戶端和服務器上的方法調用。)我不允許花費超過8(工作)小時來提出更好的解決方案,否則事情將保持不變。通過SOAP發送二進制流
我想添加的修改是壓縮XML數據(將其減少到大約100 KB),然後將其作爲二進制流發送到客戶端。然後,Delphi代碼應該接受此傳入流並再次解壓縮XML數據。現在,對現有代碼進行最小限度的更改,應如何完成? (是的,我過去曾寫過原始的客戶端和服務器,但從來不打算一次發送那麼多的數據,不幸的是,從我手中接過來的開發人員有其他想法,做出了一些愚蠢的改變,做了更多的傷害,並且在我的鋼管引導可以連接到他的背後之前離開公司,所以現在我需要修復一些東西。修復此Web服務與其他需要恢復的傷害相比,具有非常低的優先級。)
服務器代碼基於傳統的ASMX東西,客戶端代碼是Delphi SOAP導入的結果,並帶有一些額外的修改。 XML是3000+用戶的每日更新,這在當前的設計中恰好是巨大的。我們正在努力,但這需要時間。還有更重要的項目需要先解決,但正如我所說的,有很短的時間可以快速解決這個問題。
您還沒有說過是否使用WCF或傳統的ASMX技術。 – 2009-07-07 13:46:52
爲什麼不備份備份服務器文件的其餘部分時XML文件?爲什麼要特別對待它?你*是*備份服務器,不是嗎? – 2009-07-07 15:07:36