【茶包射手日記】.NET主控台應用程式出現"系統無法執行指定的程式"錯誤

同事報案,某支排程作業主控台應用程式(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的明確很多。

歡迎推文分享:
Published 24 March 2012 09:31 AM 由 Jeffrey
Views: 8,879



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<March 2012>
SunMonTueWedThuFriSat
26272829123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication