繁体   English   中英

C# 服务与 Interop.Excel 不能作为服务工作,但只能在本地工作

[英]C# Service with Interop.Excel not working as a service but only locally

我需要有关 C# 服务的帮助,我正在修复。 该服务(按顺序):

  1. 从本地 WM 中的 NAS 文件夹复制 XLSM 文件;
  2. 使用 Microsoft.Office.Interop.Excel 解析此文件(来自 NuGET 的 15.0.4795.1000 版);
  3. 使用从此 Excel 文件中提取的数据填充数据库中的表。

该服务使用 VS2019 中的 C# 编写,位于应运行的同一 VM 中。 如果我在调试模式下使用 VS 运行它一切正常,所以我将它安装在 VM 中,但现在它不再工作,一旦第 2 步开始,我就会不断收到此错误:

System.Exception:System.Runtime.InteropServices.COMException(0x800A03EC):无法访问文件 XXXX.xslm

XXXX.xlsm文件是本地VM中从NAS复制的文件,以只读方式打开; 所以步骤1正确执行。 该服务使用我用来登录 VM 的同一用户运行。

它可能会有所帮助,在这个 VM Excel 2019 已安装,无论如何,当我在调试模式下运行时它可以工作。

有谁能够帮我?

您是否使用绝对路径访问文件?

通常服务执行文件夹不同于普通应用程序的执行文件夹,并且取决于服务的执行上下文。

如果您必须使用相对路径,请尝试:

AppDomain.CurrentDomain.BaseDirectory

寻找正确的道路。

如果路径正常,请检查服务帐户用户是否具有有效的访问权限并(如果需要)编辑文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM