Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF方法返回数据集和表';s行的顺序不正确_C#_Wcf_Web Services_Dataset - Fatal编程技术网

C# WCF方法返回数据集和表';s行的顺序不正确

C# WCF方法返回数据集和表';s行的顺序不正确,c#,wcf,web-services,dataset,C#,Wcf,Web Services,Dataset,我有一个WCF服务,它返回一个包含3个数据表的数据集。前两个数据表包含一些关于要处理的数据的元数据,第三个数据表包含要处理的主要数据 在99%的客户机中,当从webservice调用检索数据集时,所有内容的顺序与发送数据集之前服务器端的顺序完全相同。然而,在一些客户机上,我注意到一些数据表的行是无序的。有人知道为什么会这样吗 另外,我确实知道所有人都说不要在WCF上使用数据集/数据表的原因,但对于这个项目来说,这是正确的方法,所以请不要链接到说WCF上的数据集是魔鬼的恐怖标题文章 为了解决这个问

我有一个WCF服务,它返回一个包含3个数据表的数据集。前两个数据表包含一些关于要处理的数据的元数据,第三个数据表包含要处理的主要数据

在99%的客户机中,当从webservice调用检索数据集时,所有内容的顺序与发送数据集之前服务器端的顺序完全相同。然而,在一些客户机上,我注意到一些数据表的行是无序的。有人知道为什么会这样吗

另外,我确实知道所有人都说不要在WCF上使用数据集/数据表的原因,但对于这个项目来说,这是正确的方法,所以请不要链接到说WCF上的数据集是魔鬼的恐怖标题文章


为了解决这个问题,我想我可以在发送数据集之前将数据集转换为字节数组,然后返回到另一端的数据集,或者在使用数据表之前在客户端对数据表进行排序,但我还是想知道为什么会发生这种情况;尤其是因为我无法在生产之外复制它。

您可以尝试通过获取dataset.getXml()来发送XML,并从客户端重建dataset


您可以通过获取dataset.getXml()并从客户端重建dataset来尝试发送XML


并且

存在一种可能性,即发送的消息接收顺序不正确。如果用于与服务通信的客户端框架能够支持它,则可以引入可靠的消息传递,以确保从客户端接收消息的顺序与发送消息的顺序相同@乔治约翰斯顿-感谢您的回复;我也这么想,但无法证明,因为我无法复制它,也没有记录SOAP消息。我很感激这个链接。由于这不是一个公共Web服务,而且我一直知道客户端将是一个.NET C#应用程序,因此我认为可靠的消息传递将是一个不错的选择。有一种可能性是发送的消息接收顺序不正确。如果用于与服务通信的客户端框架能够支持它,则可以引入可靠的消息传递,以确保从客户端接收消息的顺序与发送消息的顺序相同@乔治约翰斯顿-感谢您的回复;我也这么想,但无法证明,因为我无法复制它,也没有记录SOAP消息。我很感激这个链接。由于这不是一个公共Web服务,而且我一直都知道客户端将是一个.NET C#应用程序,因此我认为可靠的消息传递将是一个不错的选择。您提供的链接文档说明了以下内容。。。“如果使用架构推断构建数据集并使用XML或Web服务对其进行序列化,则列顺序可能会更改。”。首先,我认为这是我的问题的原因,因为我通过WCF发送数据集,但它没有正确地保持列的顺序,而且如果以XML形式发送数据集,则表明同样的情况可能会发生+1但是对于链接,我认为它确实解释了问题发生的原因。。。“如果使用架构推断构建数据集并使用XML或Web服务对其进行序列化,则列顺序可能会更改。”。首先,我认为这是我的问题的原因,因为我通过WCF发送数据集,但它没有正确地保持列的顺序,而且如果以XML形式发送数据集,则表明同样的情况可能会发生+1但是对于链接,我认为它确实解释了问题首先发生的原因。