2011-07-12 41 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服务。在这种情况下,服务不应该看到任何重复。

更困难的情况是“你真的是买了两个劳斯莱斯?”客户提交请求,让我们假装它是一个高价值的请求。然后他们的电脑崩溃,或者失去连接。之后,甚至可能从另一台计算机上,用户尝试购买相同的产品,而没有意识到第一个产品实际运行。现在这是一个难以发现的问题,许多供应商甚至都没有尝试,但在某些情况下,您需要做出非常聪明的服务,重复检测是相当复杂的模式匹配 - 对于真正高价值的客户来说,这额外的努力可能至关重要。