【问题标题】:OpenOffice uno.util.Bootstrap.bootstrap() hangs and does not returnOpenOffice uno.util.Bootstrap.bootstrap() 挂起并且不返回
【发布时间】:2013-03-13 14:46:46
【问题描述】:

Windows Server 2003 - IIS 6.0

我有一个 Asp.Net 4.0 (C#) Web 应用程序,它使用 OpenOffice 将 Microsoft Office 文档转换为 PDF,以便它们可以显示在 Web 上。

一切正常。

然后我在 Web 服务器上将 OpenOffice 从 3.2.1 升级到 3.4.1,但现在它不起作用。 问题发生在引导调用上。

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,但同样的事情发生了。

我尝试了here 概述的解决方案 3,但没有成功。

我尝试重新启动 IIS 并回收应用程序池以及与用户权限有关的各种事情。我无处可去,需要一些帮助。

我不是最初让这个在网络服务器上工作的人,所以不知道是否采取了任何特殊步骤。让它在我的开发机器上运行任何版本的 OpenOffice 都没有问题。

【问题讨论】:

  • 您解决了这个问题吗?我有同样的错误。如果我解决它会发布。
  • 您解决了这个问题吗?我遇到了同样的问题。它适用于我在 dev 上是 express 但只是等待这个调用并崩溃 iis
  • 我将 myu APP 池更改为我登录时使用的实际用户。它有效。
  • 我确实让它工作了,但我不记得我到底做了什么。我确实知道问题是 OpenOffice 挂在一个“不可见”的初始注册屏幕上,并且在注册过程完成之前它不会进行。我相信答案是以不“隐藏”的方式以预期用户身份运行 OpenOffice,这样您就可以在初始加载时完成注册过程。完成后,OpenOffice 将正常启动。抱歉,我无法提供更多帮助。

标签: c# asp.net openoffice.org bootstrapping


【解决方案1】:

我知道使用 LocalSystem 作为您的应用程序池标识将解决该问题。

我知道这并不理想,在您的情况下甚至可能是不允许的。因此,您还可以尝试修改 ASPNET 用户或自定义本地或域用户的本地策略。用户当然需要对 ooo 可执行文件夹的读取/执行权限,也许还需要临时权限。

在 Vista/Server 2008 及更高版本上,如果没有本地管理员或本地系统,我无法让它工作。我认为这与对 PROCESS_QUERY_INFORMATION 权限的更改有关,因为“.Bootstrap()”调用希望附加到您刚刚创建的 OO 进程。如果您运行较旧,可以尝试以下方法:

运行 secpol.msc 或管理工具/本地安全策略, 在本地政策/用户权限分配中:

  • 找到“拒绝本地登录”和“拒绝通过终端登录”(如果 存在,可能因 win 版本而异)
  • 从该列表中删除 ASPNET 或 {your user} 用户(如果存在)。
  • 然后找到“允许本地登录”并将您的用户添加到此列表中。

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

应用程序池也必须启用 32 位,但我相信如果您已经做到了这一点,那么您已经具备了该设置。

【讨论】:

    猜你喜欢
    • 2019-03-23
    • 2014-11-11
    • 1970-01-01
    • 2016-08-03
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2022-12-07
    相关资源
    最近更新 更多