0

我的 .net Web 应用程序可以选择上传一个包含大约 1k 个产品条目的 excel 文件,当我在 localhost 上运行应用程序时上传工作正常,但是当它托管在 iis7 上并被某些人访问时会导致以下错误网络上的其他计算机..

错误

由于以下错误,检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005 访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。

异常详细信息:System.UnauthorizedAccessException:检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。

我用谷歌搜索了一下,发现有人在谈论 32 位或 64 位操作系统。

谢谢。

4

3 回答 3

2

由于本知识库文章中所述的原因,您应该避免在服务器应用程序中使用 Excel 互操作。

相反,请考虑使用第三方产品来操作 Excel 文档,例如EPPlus (Excel 2007+)Aspose CellsSpreadsheetGear

可能您的 ASP.NET 应用程序在没有配置文件的帐户下运行。

于 2013-03-13T08:15:40.500 回答
1

确保上传文件夹获得完全权限,以便从其他计算机上传。首先要授权给每个人。然后您可以将其限制为仅限 IIS 用户。

于 2013-03-13T07:26:15.300 回答
1

在我看来,当您在服务器上实现应用程序时,没有安装您在开发机器上使用的东西。无论您使用什么来上传,如果它是第三方上传控件或其他东西,您可能不会分发该文件。

另一种可能性是,您安装应用程序的服务器是 64 位机器,而您使用的上传控件仅适用于 32 位。对于 IIS 7,您可能希望将服务器设置为 32 位。

http://www.depotsystems.com/ds_mobile_webhelp/webhelp/index.htm#page=Enabling_32_bit_mode.htm

于 2013-03-13T08:06:00.577 回答