托管时ASP.Net Com-InterOp Excel生成问题

Tha*_*hka 10 c# asp.net com-interop windows-server-2008

在我的ASP.Net应用程序中,我使用MsExcel Object Libby(Com-InterOp)生成Excel文件.该应用程序在VS dev中运行良好.环境.

但是当我在服务器中托管它时,我遇到了错误,如果我没有用户通过远程桌面连接登录到服务器.

"由于以下错误,检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:8000401a由于配置的标识不正确,无法启动服务器进程.请检查用户名和密码.(来自HRESULT的异常:0x8000401A)."

我也设置了DCOM配置.奇怪的是,至少有一个用户应该通过RDC连接到服务器.如果是这样,每个人都可以生成excel.如果没有上面的错误抛出.该应用程序的其余功能工作正常.

该服务器是Windows Server 2008,IIS7.用户通过VPN连接应用程序.

有没有人经历过这样的问题?

提前致谢.

小智 10

最后,我使用Web服务在计算机上创建了管理员用户,然后我将此用户设置为如下所示:

在此输入图像描述

那很有效.而且我们没有让计算机被锁定.

  • 如果我们选择“启动用户”选项,那么它就会解决。 (2认同)

rof*_*s91 5

问题是为应用程序设置的“身份”缺乏足够的权限。这可能有多种原因,但在我们进入这些之前,让我们检查一下此身份的配置位置。打开控制面板、管理工具,然后双击组件服务。展开 COM+ 应用程序,右键单击有问题的应用程序,点击属性,然后切换到身份选项卡。

一个可能的原因是,在为您的应用程序设置标识时,您只是选择了一个无权访问 DLL 或 DLL 接触的文件或系统调用的用户。

如果将此身份设置为“交互式用户”,则当当前登录机器的用户是peon,或者根本没有人登录时,可能会出现上述错误。这就是为什么在开发中从未检测到此错误的主要原因……开发 COM+ 应用程序并完全控制机器的用户也是以交互用户身份登录和运行的用户。

如果您的 DLL 需要,您应该确保使用具有足够权限的本地用户帐户。使用 VPN 的用户可能会因此而感到困难。


Tha*_*hka -1

感谢@Rofans.Net,根据他提供的观点,我们确定该应用程序托管的服务器位于第三方数据中心,并且始终没有用户登录到该服务器。只有登录的用户才是 RDC 用户。

因此,我们设法让用户以各种方式登录,并将计算机置于锁定状态,以便所有方式都有登录用户。

这是我们找到的唯一方法,如果有人找到更好的方法请添加。

谢谢。