Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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#变量在一台特定的PC上损坏,但在所有其他PC上工作正常_C#_Memory_Corruption - Fatal编程技术网

C#变量在一台特定的PC上损坏,但在所有其他PC上工作正常

C#变量在一台特定的PC上损坏,但在所有其他PC上工作正常,c#,memory,corruption,C#,Memory,Corruption,我有一个用C#编程的工具,它的可执行文件在许多用户之间共享 在某些PC上,我发现-特定变量被清除(即列表本身被清除);这会导致工具抛出异常 同一工具在其他PC上的所有条件下都能正常工作。 如果我将这几台PC与所有其他PC进行比较,在RAM、操作系统、任务负载等方面没有差异。 此外,该工具及其依赖项以及使用该工具的步骤都是相同的 我对这种奇怪的行为感到困惑。我的另一个问题是受影响的个人电脑和他们的用户位于不同的国家。因此,我无法手动检查PC参数或进行调试。我依赖于我得到的日志 你们中有谁会面临类似

我有一个用C#编程的工具,它的可执行文件在许多用户之间共享

在某些PC上,我发现-特定变量被清除(即列表本身被清除);这会导致工具抛出异常

同一工具在其他PC上的所有条件下都能正常工作。

如果我将这几台PC与所有其他PC进行比较,在RAM、操作系统、任务负载等方面没有差异。 此外,该工具及其依赖项以及使用该工具的步骤都是相同的

我对这种奇怪的行为感到困惑。我的另一个问题是受影响的个人电脑和他们的用户位于不同的国家。因此,我无法手动检查PC参数或进行调试。我依赖于我得到的日志

你们中有谁会面临类似的问题吗

你能告诉我,两台配置相同的电脑如何表现不同吗?环境变量、系统参数等是否存在依赖关系。

问候,,
萨钦

没有人能用你提供的有限信息回答你的问题。不过,我可以给你一些建议,你可以如何绕过这个问题

  • 添加调试日志-使用参数信息向每个方法添加日志。日志越详细,越容易发现错误
  • 添加错误处理程序以通过电子邮件发送整个堆栈跟踪的异常-您是否可以添加此功能,因为这将消除手动查看和收集日志的麻烦。此外,此错误处理程序还可以附加整个日志,以便您在电子邮件中获得完整的上下文
  • 分析日志找出哪个函数在哪个参数上失败
  • 从程序中删除错误

  • 这可能是线程问题吗?有时,具有不同可用内核数的计算机对竞争条件的响应不同。

    任何设备都可能受到随机内存问题存储不一致性的影响,并且在Windows计算机中,臭名昭著的Windows注册表可能包含许多不同的值,这些值会影响程序的执行方式

    我建议您在正在工作的机器上运行任何可靠的工具来执行内存诊断,并将其与未工作的机器进行比较


    改进工具中的逻辑,检查变量内容并执行try/catch操作,尝试检测根本原因并记录这些错误,以诊断正在发生的情况

    它认为您应该在区域/文化设置中搜索问题。这句话“我的另一个问题是受影响的PC,他们的用户位于不同的国家/地区”
    “提示变量与双精度to字符串有关,反之亦然。该列表可能会被解析异常中断

    如果在开始时显示/记录
    Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator
    ,该怎么办

    然后应该使用cultureinfo进行解析

    例如:

    CultureInfo usCultureInfo = new CultureInfo("en-US");
    
    double result;
    
    if (!double.TryParse("0.231312", NumberStyles.Float, usCultureInfo, out result))
    {
    }
    


    另一个问题可能是安装了正确的.NET版本(完整/客户端配置文件)

    谢谢您的宝贵建议和提示

    由于CultureInfo不同而发生错误。 这个可执行文件也在读取XLS文件以获取一些数据。 由于区域性信息中存在错误,XLS读取未成功,从而损坏了少数变量集

    为了解决这个问题,我有两个选择: 1.安装MS office语言包 2.在程序中更改文化信息,如下所示: CultureInfo=新的CultureInfo(“美国”)

    @杰伦·范兰根先生 特别感谢你

    问候,,
    Sachin

    您应该检查用户权限是否不同处理器架构是什么?您是否检查了代码中清除了
    列表
    的每个位置?您能否将其替换为一个
    只读集合
    ,并查看是否有内容正在清除列表中不应清除的内容?还有,“特定变量被清除”-哪一个变量,在什么情况下?没有任何源代码就很难诊断。投票结束是因为在这种详细程度上,任何答案都只能是推测性的。提供一些代码。