我們在我們公司運行用C#開發的Windows Forms應用程序,並且有一個問題讓我們頭疼。C#Windows窗體應用程序從映射的網絡驅動器運行緩慢
當我們運行從本地機器上的應用程序,在驅動器C:例如,應用程序加載和運行速度快。它主要是基於數據庫的,這意味着它對我們的MSSQL服務器做了很多查詢,並且在從本地驅動器運行時,它在不到1秒的時間內運行所有查詢。
如果我們從映射的網絡驅動器(不是UNC路徑,M:映射的驅動器)運行相同的應用程序,它加載速度很快,但查詢需要幾年才能完成,我們幾乎看不到結果。
ClickOnce是不是我們(由於是不受此處討論的原因)的選項,我們有跑得快,從相同的映射中號加載其他幾個第三方應用程序:驅動器。
我做了一些研究,我能找到的最接近的問題,這是一個: http://stackoverflow.duapp.com/questions/2554716/my-c-net-application-is-running-slower-when-the-exe-is-located-on-the-network
當我用鼠標右鍵單擊該應用程序有沒有「解除阻止」選項可用,這告訴我,有沒有附加輔助流到文件,它是由機器「信任」。
而且,我嘗試添加< loadFromRemoteSources啓用=「真」的config文件/ >,但它造成了應用程序的性能沒有變化爲止。
應用程序沒有簽名,並緩慢與調試版本和發佈應用程序的版本發生。
我們做錯了什麼?
PS:我仍然在試圖精確指出花費更長的時間來工作,確切的命令,但至今沒有運氣。
編輯:添加新的信息。看起來問題不在於網絡「本身」,而在於應用程序正在執行後臺任務並因爲從網絡運行而失敗。這種失敗並未包裹在try-catch塊中,並且阻止後臺任務正常返回,從而在應用程序響應上造成重大延遲。
這意味着這是我們的開發錯誤,而不是Windows錯誤。謝謝你的回答,我會投票結束這個問題。
我投票結束這個問題作爲題外話,因爲真正的問題與問題無關,而是應用程序中的錯誤的副作用。這個問題沒有用,所以我會投票刪除它,如果我可以。 – Machado