检测重新提交的SOAP消息

时间:2011-07-12 19:57:34

标签: asp.net web-services soap

我有一个调用ASP.NET Web服务的ASP.NET网站 如何检测重新提交的SOAP消息?如果应用程序和服务都是.NET并且在同一台服务器上,我需要担心的是这件事吗?

由于.NET创建代理并处理SOAP详细信息,您如何检测重新提交的SOAP消息?

1 个答案:

答案 0 :(得分:0)

我不能谈论ASP.NET的细节,它可能有一些“魔力”来帮助这个领域,但通常你的Web服务需要被设计成能够适应重复的请求,除非有聪明的基础设施。

有几种情况:

Web App进行服务调用。如果答案没有在某个时间进行,基础设施是否会进行任何重试尝试?我不知道ASP.NET在这里做了什么,我的猜测是“不”,但这是一个非常猜测。同样,您的Web App本身可能会选择重试。在任何一种情况下,我们可能会得到两次完全相同的请求。检测重复请求的任何责任都在于服务器。如果请求包含一些唯一标签,这将非常容易。

第二种情况是“不耐烦的用户”情景。用户经常点击提交。设计良好的Web应用程序将阻止此操作或检测到此情况,而不是重新提交Web服务。在这种情况下,服务不应该看到任何重复。

更难的是“你真的想买两辆劳斯莱斯吗?”客户提交请求,让我们假装它是一个高价值请求。然后他们的计算机崩溃,或者他们失去连接。稍后,甚至可能来自不同的计算机,用户尝试相同的购买,而不是意识到第一个实际工作。现在这很难发现,许多供应商甚至都没有尝试,但在某些情况下,您需要制作一个非常聪明的服务,重复检测是非常复杂的模式匹配 - 对于真正高价值的客户来说,这些额外的努力可能是必不可少的。 。