2009-11-11 64 views
2

使用對象模型或STSADM命令部署到共享點有時會導致一個或多個包在Web控件中處於「錯誤」狀態,重新部署會立即修復此問題,通常情況下,甚至是陌生人,如果我創建兩個應用程序添加一個應用程序,然後我不會遇到任何問題,但在單個程序之間延遲不會產生類似的效果。使用對象模型部署到共享點不能可靠地工作

如果我運行部署兩次,這是我沒有嘗試以編程方式在它使這種情況下沒有差別做沒有成功部署它工作正常,只要程序。

它是不同的文件,有時沒有。

我使用STSADM -execadmsvcjobs添加和部署,並部署束的兩個公司之間之間。 (我部署約10 WSP文件編程)

有沒有人對爲什麼出現這種情況的任何想法?或者如何解決它,因爲當我到達實現它會導致問題。

+1

歡迎使用SharePoint :)這個優良的產品:) – 2009-11-11 21:09:03

+0

因爲我已經打過電話的工作之間重置IIS的另一個很好的例子,以及execadmjobs,並仍然沒有運氣,甚至檢查哪些失敗和重新部署不起作用!但如果我去用戶界面,他們部署沒有問題...! – Nath 2009-11-13 13:22:57

回答

1

問題在於這樣一個事實:SharePoint將執行應用程序池回收和/或全iisresets,如SharePoint計時器服務以及重新啓動(altough不能完全肯定,雖然)。當您嘗試實際部署剛剛安裝的軟件包時,SharePoint仍處於忙碌狀態,並且正在重新運行,爲安裝/部署創建的計時器作業基本上正在等待中央管理應用程序池再次完全運行。

收回解決方案時發生同樣的事情(有點可重現)。在退回過程正在進行時,在解決方案管理頁面上多次點擊F5,如果刷新得足夠快,它將掛起並顯示紅色的「錯誤」。

我的解決方案是在部署應用程序或PowerShell中爲至少中央管理員創建一個WebRequest(或者只是執行SPSite = new SPSite(「centraladminurl」))。每次部署操作之後也要這樣做。

應該解決時間問題(基本上是一種「race condition")。

+0

每次solution.deploy命令後,我添加了一個行如下: 的SPSite臨時=新的SPSite(centralAdminURL); temp.Dispose(); 然而運行添加和部署ROU齒仍然留下隨機數量的錯誤狀態解決方案。 你提到你爲中央管理員創建一個webrequest工作,我從我的代碼到底該怎麼做?你有什麼能爲你工作嗎? 非常感謝! – Nath 2009-11-12 11:08:14