【发布时间】:2020-05-09 14:56:35
【问题描述】:
这是我第一次使用 IIS,所以我不太了解它是如何工作的。
我开发了一个 ASP.net c# web 表单应用程序,以便使用 IIS 将其部署在服务器上。我在 Windows 服务器上安装了 Visual Studio,以确保应用程序正常运行,到目前为止没有问题。
当我从 Visual Studio 发布应用程序并将生成的文件系统放入 inetpub/wwwroot 中时...页面加载正常,但是当我尝试需要外部库的应用程序功能时,恰好引发了异常在代码中插入第一个外部库的对象的行中(由日志提供的信息)。
我怀疑一旦部署在 IIS 应用程序上,就没有库的引用或无权访问它们,因为除了将文件系统添加到 depault 应用程序池之外,我没有触及 IIS 内部的任何内容。但是我该如何解决这个问题呢?
这是我从日志中得到的两个错误跟踪:
Retrieving the COM class factory for component with CLSID {ED0EC116-16B8-44CC-A68A-41BF6E15EB3F} failed due to the following error : 80070154 Class not registred (Exception HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG)).
或其他时间:
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error : 80070005 Access Denied. (Exception HRESULT : 0x80070005 (E_ACCESSDENIED)).
提前致谢。
【问题讨论】:
-
您的应用是否使用 Microsoft Office(例如 Excel)?
-
@Kev 是的,我确实在使用它,但它的库并不是他唯一引起问题的一个,所有外部库都这样做。
-
你所有的外部库是什么?
-
好的...首先,请不要尝试将 Excel 等 Office 产品作为 Web 应用程序中的进程外 COM 服务器运行。这是一个糟糕的主意,它们不是为此而设计的,而且体验总是以泪水告终。有第三方库可以更好地完成这项工作:stackoverflow.com/questions/151005/…
-
@Kev 实际上主要的是: Microsoft.Office.Interop.Excel Objets100cLib Objets100Lib 最后两个是业务对象库,用于在称为 Sage 的企业资源规划解决方案上工作。现在来看,与 excel 处理相关的功能给了我 com Access denied 错误,而与业务对象相关的功能返回“类未注册错误”
标签: asp.net iis dll deployment windows-server-2012-r2