【问题标题】:uploading excel file in c# .net web application result in error在 C# .net Web 应用程序中上传 excel 文件导致错误
【发布时间】:2013-03-01 00:36:00
【问题描述】:

我的 .net Web 应用程序有一个上传 excel 文件的选项,该文件有大约 1k 个产品条目,当我在 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 位操作系统。

谢谢。

【问题讨论】:

标签: c# .net iis-7


【解决方案1】:

您应该避免在服务器应用程序for the reasons described in this KB article 中使用 Excel 互操作。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 谢谢,但我认为这不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多