Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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
ForEach循环(C#)缺少第一项_C#_Wcf_Foreach - Fatal编程技术网

ForEach循环(C#)缺少第一项

ForEach循环(C#)缺少第一项,c#,wcf,foreach,C#,Wcf,Foreach,我有一个WCF服务,其中包括一个foreach循环: foreach (var fileName in questionnaireRequest.StoreItem.Files) { //// Processing done here } 当在本地运行时,这可以正常工作,并且集合中的每个项都会被处理 但是,在服务器上,始终跳过集合中的第一项 一个真正的难题 我能看到的唯一区别是,我们在本地运行.Net版本4.5.2,服务器运行的是版本4.5.1 有人见过这种行为吗?我们终于找到了解决方案

我有一个WCF服务,其中包括一个foreach循环:

foreach (var fileName in questionnaireRequest.StoreItem.Files)
{
   //// Processing done here
}
当在本地运行时,这可以正常工作,并且集合中的每个项都会被处理

但是,在服务器上,始终跳过集合中的第一项

一个真正的难题

我能看到的唯一区别是,我们在本地运行.Net版本4.5.2,服务器运行的是版本4.5.1


有人见过这种行为吗?

我们终于找到了解决方案-此解决方案中包含一个负载平衡器,因此文件可以存储在两台服务器中的一台,由负载平衡器确定。在本例中,有时文件存储在一台服务器上,但对web服务的下一次调用在第二台服务器上运行


两种可能的解决方案—在负载平衡器上启用粘性会话,或者为两台服务器都可以访问的文件创建一个共享文件夹。

否。您需要进行一些调试。当然,这不是.NET版本的问题。我建议您调试代码并比较服务器和本地PC中的
questionnaireRequest.StoreItem.Files
。foreach不能跳过项目。它使用(仅向前迭代)集合中提供枚举数的项。
文件的类型是什么?您是如何验证它是否被跳过而不是不在集合中的?您是否可以发布代码,说明questionnaireRequest.StoreItem.Files在foreach循环之前是如何初始化/修改的?您需要调试服务并检查列表的内容-它没有缺少第一项。要么你的证据是错误的,要么你期望的项目不存在——foreach在服务器上的行为没有任何不同。