2011-07-12 74 views
0

我有一個ASP.NET網站,調用一個ASP.NET Web服務。
如何檢測重新提交的SOAP消息?如果應用程序和服務都是.NET並且位於同一臺服務器上,那麼我需要擔心這些問題嗎?檢測重新提交的SOAP消息

由於.NET創建代理和需要照顧的SOAP細節,你如何檢測重新提交SOAP消息?

+0

SOAP消息通常不被重新提交。 –

回答

0

我無法ASP.NET的具體講,它可能有一些「神奇」在這方面的幫助,但通常你的Web服務需要被設計爲彈性的重複請求,除非有聰明的基礎設施。

有幾種情況:

Web應用程序進行服務調用。如果答案沒有在特定時間內發生,基礎設施是否會做出任何嘗試重試?我不知道ASP.NET在這裏做什麼,我的猜測是「不」,但這是一個猜測。同樣,您的Web應用程序本身可能會選擇重試。無論哪種情況,我們都可能得到兩次完全相同的請求。檢測重複請求的任何責任都在服務器上。如果請求包含一些獨特的標籤,這非常容易。

第二種情況是「急性子用戶」的情景。用戶點擊次數過多。一個精心設計的Web應用程序將阻止或檢測到這一點,而不是重新提交Web服務。在這種情況下,服務不應該看到任何重複。

更困難的情況是「你真的是買了兩個勞斯萊斯?」客戶提交請求,讓我們假裝它是一個高價值的請求。然後他們的電腦崩潰,或者失去連接。之後,甚至可能從另一臺計算機上,用戶嘗試購買相同的產品,而沒有意識到第一個產品實際運行。現在這是一個難以發現的問題,許多供應商甚至都沒有嘗試,但在某些情況下,您需要做出非常聰明的服務,重複檢測是相當複雜的模式匹配 - 對於真正高價值的客戶來說,這額外的努力可能至關重要。