【问题标题】:error when opening excel file打开excel文件时出错
【发布时间】:2023-04-10 15:29:01
【问题描述】:

我有一个使用 Microsoft.Office.Interop.Excel 从 excel 读取数据的 Web 服务。它在我的本地机器上工作正常,但是当我将它上传到服务器上时,它会出现以下错误

服务器无法处理请求。 ---> 由于以下错误,检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005。

我搜索并尝试遵循 DCOMCNFG-> 组件服务-> 计算机-> 我的计算机-> com+ 应用程序的建议,但后来我没有找到 Microsoft excel 来更改权限。 Office 2003 安装在服务器中,我试图打开的文件也是 2003。 请帮忙!! 谢谢

【问题讨论】:

    标签: c# web-services


    【解决方案1】:

    您不会找到 Excel,您必须找到匹配的 CLSID 并更改激活/启动权限。

    标准免责声明:Microsoft 不建议在服务器上无人值守执行 Office,但我们中的很多人都乐于这样做(包括我自己)。

    【讨论】:

    • 好的,我对此不是很熟悉。你能更详细地解释一下我需要找到什么吗?我没有看到 CLSID。
    • 当您进入 DCOM 配置时:开始|运行|dcomcnfg。展开组件服务 |我的电脑 | DCOM 配置。将加载一个大列表,如果您向下滚动到底部,您将看到您在帖子中提到的 GUIDS - 查找 -> {00024500-0000-0000-C000-000000000046} - 当您找到它时,右键单击 |属性 - 转到安全选项卡 - 选择自定义启动和激活权限 - 设置您想要允许启动 excel 的身份。您可以尝试将其设置为您的应用程序池正在运行的身份,我不知道您的实现细节,所以..
    • 非常感谢您的回复,很有帮助,我找到了,但现在又卡住了。我应该添加什么用户并授予权限?如何找到代表我想要启动 excel 的应用程序的用户?请最后一点帮助..
    • 嗯,在不知道你的服务是如何设置的情况下,我会在黑暗中刺一下,你能找到你在 IIS 中运行的 Web 服务的身份,如果这是 IIS6 或更高版本的话可以检查应用程序池,给它一个特定的身份来运行(如服务帐户),或者如果它作为网络服务运行,给网络服务启动/激活权限
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    相关资源
    最近更新 更多