1. 程式人生 > >Server.MapPath報“未將物件引用設定到物件的例項”錯誤解決

Server.MapPath報“未將物件引用設定到物件的例項”錯誤解決

最近寫程式碼的時候要用到以前的人已經寫好的helper類去將datatable資料匯出到excel,原本這個方法是沒有問題的,我也曾經多次呼叫該方法,沒有任何問題出現。直到這次我需要定時呼叫helper類讓它生成excel,結果第一次執行就報“未將物件引用設定到物件的例項”的錯誤,經過多次排查發現問題出現在Server.MapPath身上,正常來說它可以取到網站的根目錄,但這次卻未取到任何值,經過谷歌的幫助,我弄明白了Server.MapPath貌似只能被aspx或者MVC中的Action呼叫,因此我不得不把helper類中關於資料匯出的方法放到我的程式裡,然後把Server.MapPath換成System.Web.HttpRuntime.AppDomainAppPath找到網站的根目錄,接下來就一切正常了。當然,網上還有另一種解決方法,是呼叫System.AppDomain.CurrentDomain.BaseDirectory找到網站的根目錄,不過我並未測試該方法,暫且做個記錄。