2011-06-06 106 views
2

我有一個List<string>需要從Web服務檢索的文件。異步調用單個文件的檢索方法RetrieveFileAsync(string fileName)。由於可能存在文件損壞,因此來自webservice的響應包含該文件的MD5校驗和。假設發生損壞,我可以從服務中獲取所有文件的最佳方式是什麼?我正在考慮維護一個Dictionary<string, bool>,如果校驗和匹配並重複檢查字典項目,併爲所有未標記的文件發出RetrieveFileAsync,那麼將標記爲Dictionary<string, bool>,直到字典中的所有文件都被標記爲止。這是正確的方法嗎?WCF Web服務和數據損壞

+0

即使在將WCF服務加載到WCF服務的內存之前,或者在WCF服務器服務和客戶端之間發生破壞之前,您是否擔心磁盤級別的數據損壞?在第二種情況下,我認爲這取決於您使用的頻道/綁定... – 2011-06-06 09:58:27

+0

我指的是服務和客戶端之間的腐敗。 – devnull 2011-06-06 09:59:49

回答

0

如果您希望在服務和客戶端之間發生數據損壞,您可以嘗試打開Reliable Message Delivery。這應該修復消息級別上的任何損壞:

<wsHttpBinding> 
    <binding configurationName="myReliableBinding"> 
     <reliableSession enabled="true" ordered="true" /> 
    </binding> 
</wsHttpBinding> 

您可以閱讀更多here

+0

但是,它不會強制增加安全性並讓事情變得更慢嗎? – devnull 2011-06-06 15:18:24

+0

如果您使用除basicHttpBinding之外的任何綁定,此方法將幫助您。這種方法沒有安全要求。我認爲它不會比嘗試手動重新請求損壞的文件慢。您的MD5哈希也可能在傳輸請求期間被破壞:) – 2011-06-06 16:10:09