【茶包射手日記】.NET主控台應用程式出現"系統無法執行指定的程式"錯誤
0 |
同事報案,某支排程作業主控台應用程式(Console Application)忽然無法執行,持續出現:
The system cannot execute the specified program.
系統無法執行指定的程式
爬文發現此訊息大多與缺少VC++ DLL有關,但這是支.NET程式,加上原本可以執行,必要DLL忽然消失的可能不高,推測應另有原因。
試著直接由檔案總管點選exe執行,蒐集更詳細的訊息。登楞! 凶手的背影出現了~~
訊息指出是config檔有問題,同事此時也出來補刀--"的確是修改過config後才壞的"。(身為報案民眾,一開始忽略重要線索也是很合理滴... [摔滑鼠])
檢視mdbsync.exe.config(如下示意),其中註解是後來加的,試著移除註解程式就能執行。所以問題出在該行註解,但以XML格式來說,"<!-- 註解 -->"看來合法無誤,為何變成把config搞爛的毒藥? 有人看出端倪了嗎?
注意一下Notepad++的狀態列,ANSI!! ANSI!! ANSI!!
結論: 在UTF-8 XML中寫入中文並存成BIG5會導致Console Application config壞掉,而在Windows 2003 Command視窗執行時則會傳回"The system cannot execute the specified program."錯誤。
PS: 發現在本機Window 2008 R2測試傳回的錯誤訊息不同: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. 看起來比Windows 2003的明確很多。
Comments
Be the first to post a comment