2009-08-20 85 views
2

我們有一個winforms應用程序,它通過clickonce部署到用戶並使用自動更新功能。更新後Clickonce winforms應用程序啓動緩慢

我們已經注意到,對於我們的用戶來說,在clickonce更新發生後,應用程序需要花費幾分鐘的時間。應用程序可執行文件在此期間運行,CPU使用率相當高,但不顯示任何窗口。

這在開發人員的機器上無法重現。用戶和開發者機器有兩個主要區別:

  1. 用戶正在運行Windows XP,其中開發人員正在運行Windows Vista。
  2. 開發人員與clickonce服務器位於同一個域,而用戶位於與Clickonce服務器所屬的域具有雙向信任關係的另一個域中。

應用程序的冷啓動性能在更新後運行一次後幾乎是瞬時的。

下面的鏈接是有人在MSDN論壇上有同樣的問題,但沒有張貼的解決方案: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/5ec061c4-ec6f-4101-98a6-dc8bb5acab60

由於開發商已經無法重現本地,我們還沒有一個譜跟蹤在此期間應用程序正在做什麼。

有關爲什麼會出現這種情況的任何想法或有關如何解決問題的建議?

謝謝。

編輯08/24/2009:創建一個運行XP的32位虛擬機,並將其加入到與用戶相同的域中。該問題未在虛擬機中顯示。這似乎消除了XP和域成員身份作爲問題的根源。這似乎將VLAN,系統配置和補丁級別視爲潛在的罪魁禍首。

回答

5

當應用程序更新時,所有新程序集都需要進行即時編譯。這通常只發生一次,這樣可以解釋初始啓動緩慢的原因,以及爲什麼不能在開發人員機器上重現。

對於新部署的第一次運行,我已經看到非常糟糕的性能(分鐘與幾秒鐘).Net應用程序是用戶正在運行防病毒軟件,因爲防病毒工具檢查新Jitter組件並非惡意。

如果您能夠監視應用程序的初始啓動 - 請檢查是否加載了mscorjit.dll,並且該進程消耗大量CPU的原因是由於發生了jitting。還要檢查是否有任何防病毒工具正在消耗大量的CPU。

+0

那麼,啓動速度慢的QA機器也不會出現在與顯像設備相同的Vista和相同的域中。這似乎排除了Jitting作爲罪魁禍首。 – 2009-08-20 20:56:34

+0

在此期間的主要CPU消耗量是應用程序可執行文件本身。 – 2009-08-20 21:00:03

+0

質量保證機器是否有任何防病毒軟件?做客戶機器? – 2009-08-20 21:00:05