2013-03-13 66 views
4

的Windows Server 2003 - IIS 6.0OpenOffice的uno.util.Bootstrap.bootstrap()掛起,並且不會返回

我有一個Asp.Net 4.0(C#)的網絡使用OpenOffice的轉換Microsoft Office文檔轉換成PDF的應用所以他們可以在網上顯示。

一切工作正常。

然後,我將OpenOffice從3.2.1升級到了3.4.1的Web服務器,現在它無法工作。 引導調用發生問題。

private static XComponentLoader LoadOO() 
{ 
    XComponentContext OO = uno.util.Bootstrap.bootstrap(); // this will either start OOo or Find one that's running. (The code hangs here) 
    XMultiServiceFactory oServMan = (XMultiServiceFactory)OO.getServiceManager(); // Get Service Manager 
    XComponentLoader aLoader = (XComponentLoader)oServMan.createInstance("com.sun.star.frame.Desktop"); // Get a CompontLoader 
    return aLoader; 
} 

uno.util.Bootstrap.bootstrap();掛起並不返回任何東西。

該調用在網絡服務用戶名下啓動OpenOffice,但該調用永不返回。每次調用該方法時,都會打開另一個OpenOffice實例,而不是附加到已打開的實例。

我試過再次降級到3.2.1,但同樣的事情發生。

我試過解決方案3概述here沒有成功。

我試過重新啓動IIS和回收應用程序池和各種事情必須做用戶權限。我沒有得到任何地方,需要一些幫助。

我不是那個最初在網絡服務器上工作的人,所以不知道是否採取了特殊措施。使用OpenOffice的任一版本在開發機器上運行我都沒有問題。

+0

你解決了這個問題嗎?我有同樣的錯誤。如果我解決它會發布。 – 2013-08-05 02:05:33

+0

你有沒有設法解決這個問題?我遇到了同樣的問題。它的工作原理我在dev上表達,但只是在等待這個調用和崩潰iis – ppumkin 2014-02-01 19:27:16

+1

我改變myu APP池到我登錄的實際用戶。有用。 – ppumkin 2014-02-08 08:57:32

回答

2

我知道使用LocalSystem作爲應用程序池標識可以解決問題。

我知道這並不理想,在您的情況下甚至可能不允許。因此,您還可以嘗試修改ASPNET用戶或自定義本地或域用戶的本地策略。當然,用戶需要對ooo可執行文件夾有讀/執行權限,也許是temp。

在Vista/Server 2008及以上版本中,如果不是本地管理員或本地系統,就無法使其工作。我認爲它與對PROCESS_QUERY_INFORMATION權限的更改有關,因爲「.Bootstrap()」調用正在附加到剛剛創建的OO進程。你可以試試下面的,如果你正在運行較早:

運行secpol.msc或者管理工具/本地安全策略, 在本地策略/用戶權限分配:

  • 找到「拒絕本地登錄」和「拒絕通過終端登錄」(如果有 ,可能會有所不同)
  • 如果存在ASPNET或{你的用戶}用戶,請從此列表中刪除。
  • 然後找到「允許本地登錄」並將您的用戶添加到此列表中。

http://support.microsoft.com/default.aspx?scid=kb;en-us;317012 http://support.microsoft.com/kb/555134

應用程序池也必須支持32位,但我相信,如果你得到這個地步,你已經擁有了一套。

+0

不適合我! – 2017-05-21 12:03:36

相關問題