【问题标题】:Excel 2010 interop issuesExcel 2010 互操作问题
【发布时间】:2015-09-22 14:06:17
【问题描述】:

是的,这让我疯了。这在本地使用 Excel 2013 可以正常工作,但是当使用 Excel 2010 将网站发布到远程服务器时,它会失败。从我可以看到 DCOM 配置在本地与远程相同。

在与 Excel 2010 和 DCOM 权限斗争了一个多小时后,我得到的最好的结果就是这个例外:System.Runtime.InteropServices.COMException (0x80070BBC): Office has detected a problem with this file. To help protect your computer this file cannot be opened.

这是 Web 应用程序试图从刚刚上传到的位置打开 *.xls 文件的结果。应用程序池在ApplicationPoolIdentity 下运行,我已在Launch and Activation Permissions 上的mmc -32 下设置此特定应用程序池的权限,因此运行Excel 没有问题。我认为我在这里面临的是保护模式问题,因为文件绝对没有损坏。

我已进入 Excel 和信任中心设置,并将 *.xls 文件上传到(并随后打开)的位置添加为受信任位置。如果我在托管服务器上打开文件(在我的域帐户下),我不会在文件上获得受保护的视图块 - 但是,DCOM 配置上的 Identity 设置为启动用户。那么,从以下内容(或我未列出的内容)来看,这是什么意思:

  1. 我需要在组策略级别将此位置添加为受信任位置,因为启动实际应用程序的帐户在其配置文件中没有此配置?
  2. 我需要在服务器上创建一个实际的帐户,并使用这个帐户作为运行应用程序的身份吗?
  3. ... ?

只是为了澄清我已经在 DCOM 安全配置路线上遇到了 C:\Windows\System32\config\systemprofile\DesktopC:\Windows\SysWOW64\config\systemprofile\Desktop 的荒谬问题。配置是:

  • .NET 4.5(经典管道)应用程序池在 ApplicationPoolIdentity 下运行
  • DCOM Config > Security > Launch and Activation Permissions all set for this specific identity (Access Permissions and Configuration Permissions all set to Use Default)
  • 文件已正确上传并显示在目标位置,在服务器本身上打开(在我的域帐户下)尊重受信任的位置并且不会发出保护模式警告
  • 解析过程失败,出现上述异常。

如果相关的话,这是我正在使用的 Interop 程序集的屏幕截图。

【问题讨论】:

    标签: excel-interop


    【解决方案1】:

    好的...对于任何在这个问题上绊倒的人,我已经咬紧牙关,必须执行以下操作:

    1. 创建一个本地帐户(在我的实例中为 AutomatedOffice)并设置 DCOM 配置以在此帐户下运行 Excel
    2. 以上述帐户登录并更改 Excel 设置以将应用程序根目录中的文件夹添加到受信任位置并禁用保护模式消息
    3. 允许“网络服务”在本地调用 DCOM 进程(通过服务器 DCOM 配置而不是 CLSID 配置)
    4. 在 C:\Windows[System32|SYSWOW64]\config\systemprofile\Desktop 路径上为此帐户添加 NTFS 权限

    奇怪的是,在创建帐户后,我收到了以下异常 Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied.,已通过将 HOST\UsersHOST\NetworkServices 组添加到 DCOM 安全(仅限本地!!!)设置来解决。

    【讨论】:

      【解决方案2】:

      您需要在信任中心、安全位置添加您的网站发布的文件夹,例如,如果您的网站从 c:\temporal\ 读取文件,您必须在 excel 中添加该文件夹名称的安全位置

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2015-05-04
        • 2013-07-18
        • 2021-12-22
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多