通过.Net中的SOAP Web服务发送和接收数据

时间:2010-01-20 09:19:11

标签: .net asp.net web-services soap

我正在研究客户端 - 服务器应用程序,我曾经在其中通过SOAP Web服务发送和接收数据。

现在有时候我从某人那里听说我可能会丢失一些数据,而这个过程是在ASP.net中创建的soap服务。所以现在我决定通过批量发送和接收数据,首先我将发送50个对象的列表然后接下来的50个等等......

现在我是Web服务的新手。

所以我的问题是“在通过SOAP Web服务传输数据时,我们有时会丢失一些数据吗?”

6 个答案:

答案 0 :(得分:1)

SOAP通过Internet使用HTTP协议。 HTTP请求可能因任何原因(硬件,服务器,软件等)失败,尽管这种情况很少发生。但是,除非您的数据非常大,否则我认为将请求分成多个“列表”没有任何好处。如果有的话,单个请求失败的可能性会增加整个数据传输失败的可能性。

答案 1 :(得分:0)

我从来没有听说过这样的事情。

如果这是一个严重的问题,那就有很多证据。

答案 2 :(得分:0)

我在传输和接收来自Web服务的数据时尝试过SOAP协议,但没有任何损失,但您必须遵循SOAP的结构发送和接收保证不丢失数据。

要从浏览器中查看SOAP请求Web服务函数的结构,它将向您展示如何使用SOAP在Web服务中调用此函数,并定义如何存在其参数(

)。

请注意不要通过SOAP发送或接收日期类型,因为格式不同以及采用不同格式的任何类型。

答案 3 :(得分:0)

如果您的数据是可序列化的,那么您不会丢失任何东西。

答案 4 :(得分:0)

请求大小可以在<中的web.config中配置。 httpRuntime />标签

以下参考资料显示了在请求/设置数据大小上设置最大值的一些示例。

答案 5 :(得分:0)

在实践中,如果你获得了良好的序列化响应,你什么都不会失去。

但是您永远无法收到回复,或者请求可能永远无法到达服务器。

消息队列是避免传输问题导致数据丢失的答案。

消息队列不是发送请求而只是等待响应,而是将请求和响应保留在上下文中,以确保每个请求都有其响应(或更多取决于软化的规则)。

这是Message Queue over HTTP: Usage Scenarios