2013-09-05 18 views
-1

我有一個工具,在C#,可執行文件,被很多用戶共享的編程工作正常。C#變量被破壞一個特定的PC上,但所有其他

在一些PC,我發現 - 特定的變量被清除(即清單由自己清除);這會導致工具拋出異常。

相同工具的工作原理以及在各種條件下對電腦的休息。

如果我比較這幾個電腦與所有其他存在RAM,操作系統沒有什麼區別,任務負載等 同樣工具及其家屬,也步驟來使用它都還一樣。

我疑惑這個奇怪的行爲。對我來說,其他問題是受影響的PC和他們的用戶位於不同的國家。所以我不能手動檢查PC參數或者可以調試。我依靠我得到的日誌。

你們中的任何一個人都可能面臨類似的問題嗎?

你可以提示我怎麼可以在具有相同配置的行爲2個不同的電腦不同?是否有環境變量,系統參數等任何依賴

問候, 薩欽

+0

您應該檢查是否也許用戶權限不同 – Heslacher

+0

什麼處理器架構?你有沒有檢查清單中List代碼被清除的每個地方?你可以使用'ReadOnlyCollection'替換它,看看有什麼東西正在清除不應該是的列表?另外,「特定變量被清除」 - 哪個變量,在什麼情況下?沒有任何源代碼,診斷非常困難。 –

+1

投票結束,因爲在這個詳細程度,任何答案只能是推測。提供一些代碼。 – spender

回答

1

沒有人能回答與你給的信息量有限查詢。不過,我可以給你一些建議,告訴你如何解決這個問題。

  1. 添加調試日誌 - 使用參數信息向每個方法添加日誌。日誌越詳細,您越容易找到該錯誤。
  2. 添加錯誤處理程序與整個堆棧跟蹤電子郵件的例外 - 你能添加此功能,因爲這將消除頭痛到去和手工收集日誌。此外,這個錯誤處理程序可以附加整個日誌,以便在電子郵件中獲得完整的上下文。
  3. 分析日誌找出哪些功能無法從你的程序,參數
  4. 刪除錯誤
1

難道是一個線程問題?有時具有不同數量內核的機器對競爭條件的反應不同。

0

任何設備都可以通過randon記憶的影響發出存儲inconsistance在Windows機器上臭名昭著的Windows註冊表可以認爲,能夠影響如何執行的計劃中有許多不同的值。

我建議你運行任何可靠的工具,這是工作和比較,爲機器不工作

提高邏輯在你的工具,以檢查變量內容的機器上執行內存診斷和執行的try/catch操作來嘗試檢測的根本原因,並記錄這些錯誤的診斷髮生了什麼

0

它認爲你應該上搜索區域/文化設置的問題。此行「對我來說其他問題是受影響的PC和他們的用戶位於不同的國家。」敲響了變量與雙重字符串有關的響鈴,反之亦然。該列表可能會被解析異常中斷。

如果您在開始時顯示/記錄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版本(全/客戶端配置文件)

0

感謝您的寶貴建議和提示。

由於CultureInfo不同,發生錯誤。 此可執行文件還讀取XLS文件以獲取一些數據。 由於文化信息中的mismtach,XLS讀取不成功,這反過來損壞了幾組變量。

爲了解決這個問題,我有2種選擇:1。 安裝MS Office語言包的程序如下 2.改變文化信息: 的CultureInfo =新的CultureInfo( 「EN-US」);

@Mr。 Jeroen van Langen 特別感謝您!

問候, 薩欽

相關問題