IIS无法访问用户的Excel文件,但对我来说可以。 为什么?

我有一个程序在Windows Server 2008 R2的IIS中作为服务运行。 该程序没有问题在Excel中创build报告。 当它尝试访问它刚创build的Excel时,就会出现问题。 这给用户在这行代码80070005错误:

Excel.Application excelSS = null; excelSS = new Excel.Application(); <-- Error 

因为在那个时候,程序还没有尝试访问Excel文件,我相信这个问题与文件的访问权限不足有关。 我相信这个问题可能与查找Excel程序有关。 这可能与Excel是32位而Windows操作系统是64位有关。 我不确定。

奇怪的是我没有问题通过IIS查看Excel报告。 另一个IT人员也没有这个问题。 但普通用户都有这个问题,试图做同样的事情。 这一切都表明这个问题与“访问权”有关的可能性很高。 如果它与Excel的设置有关,我会假定包括我在内的每个人都会遇到同样的问题。 这很令人费解。

我已经尝试了在互联网上可以find的所有提示:

  • 确认IIS中的应用程序池使用IIS APPPOOL \ DefaultAppPool用户帐户。

  • 在system32和SysWOW64下的config \ systemprofile下添加一个“Desktop”文件夹,并确保IIS APPPOOL \ DefaultAppPool用户帐户对这些文件夹具有读/写权限。

  • 运行DCOM-Config,并将本地访问/启动/激活权限分配给COM-Security下的IIS APPPOOL \ DefaultAppPool。 并确保32位和64位DCOM-Config获得这些设置。

  • 由于用户使用“Windows身份validation”在IIS中运行程序,我还确保用户可以使用自己的用户帐户访问存储Excel文件的IIS服务器中的文件夹。

  • 我什至去添加IIS APPPOOL \ DefaultAppPool到本地pipe理员用户组。

我不能尝试的唯一提示是,我无法findDCOM-Config程序(组件服务 – >计算机 – >我的电脑 – > DComconfiguration)中列出的“Microsoft Excel应用程序”的事实。 我应该添加启动/激活访问权限IIS APPPOOL \ DefaultAppPool到“列表中的Microsoft Excel应用程序”。 但不知何故“Microsoft Excel应用程序”不在列表中。 我已经尝试在DCOM-Config的System32和SysWOW64文件夹中查找它。 这“看起来”像问题所在。 但我不知道这一点,因为我没有问题使用我的用户帐户查看Excel报告。 如果Excel中的设置有问题,我认为我们都不能查看Excel报告。

当我在Windows Server 2003 R2 – 32位或Windows XP 32位中安装该程序时,我没有这个问题。

我了解微软希望人们不要在Windows Server 2008中使用Office Automation的问题。微软希望人们使用XML或类似的东西。 但我也明白,人们已经尝试过,可以解决这个问题。 因为我不是那个程序的开发者,我真的不想开始改变这个程序。 因此,我希望能够使现有的scheme工作。

请帮忙。 提前致谢。

Jay Chan

原来这个问题与访问权限有关。 看起来像ASP.NET正在用户身份validation下运行(并不奇怪,因为我已经设置了Web服务使用“Windows身份validation”)。 而用户没有权限直接在服务器上运行Excel。 解决方法是使用特殊的域用户帐户:(1)将特殊用户帐户分配为本地pipe理员,(2)将特殊用户帐户分配为Web服务的“ASP.NET模拟”的“特定用户”。

我有一种感觉,特殊的用户帐户是以某种方式embedded在特定的Web服务。 因此,我上面提到的修复可能会或可能不会为其他人工作。 不幸的是,我不知道这是否是真实的,因为我不是该Web服务的开发者。 而且在Web服务中找不到任何与特定用户帐户相关的内容。

我很高兴,这是固定的。

Jay Chan