C# Excel无法从C访问#

C# Excel无法从C访问#,c#,asp.net,excel,C#,Asp.net,Excel,这是关于我们在生产中面临的Excel问题。我们有一个asp.net应用程序,它正在从共享驱动器读取Excel。服务器上的Dcom配置和安全设置有问题,无法完成此过程 我们当前正在从Dcom标识选项卡中定义的服务帐户运行该进程 我们拥有应用程序读取文件的服务帐户的共享驱动器的完全权限。但我们仍然得到如下错误。(错误消息:Microsoft无法访问该文件:可能有以下几个原因:文件名或路径不存在,该文件正被其他程序使用,您试图保存的工作簿与当前打开的工作簿同名) 我们还拥有excel位置上服务帐户的完

这是关于我们在生产中面临的Excel问题。我们有一个asp.net应用程序,它正在从共享驱动器读取Excel。服务器上的Dcom配置和安全设置有问题,无法完成此过程

我们当前正在从Dcom标识选项卡中定义的服务帐户运行该进程

我们拥有应用程序读取文件的服务帐户的共享驱动器的完全权限。但我们仍然得到如下错误。(错误消息:Microsoft无法访问该文件:可能有以下几个原因:文件名或路径不存在,该文件正被其他程序使用,您试图保存的工作簿与当前打开的工作簿同名)

我们还拥有excel位置上服务帐户的完全权限。由于应用程序将由不同的用户运行,我们无法将DCom设置更改为“交互式用户”。业务部门希望应用程序使用on服务帐户运行。 如果我们将其更改为“交互式用户”,它将按预期工作,Excel将毫无问题地打开

服务帐户也添加到COM属性设置中

我在Windows\System32\Config\systemprofile\Desktop和Windows\SysWow64\Config\systemprofile\Desktop下创建了桌面文件夹,并授予了服务帐户的完全权限,但该问题没有解决该问题

你能帮助我们吗

string con =
  @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;" + 
  @"Extended Properties='Excel 8.0;HDR=Yes;'";    
using(OleDbConnection connection = new OleDbConnection(con))
{
    connection.Open();
    OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection); 
    using(OleDbDataReader dr = command.ExecuteReader())
    {
         while(dr.Read())
         {
             var row1Col0 = dr[0];
             Console.WriteLine(row1Col0);
         }
    }
}

试试这个。我想这对你来说很好

Excel+COM Automation+ASP.Net是非常强烈的建议,它根本不适合在那种环境下工作。如果您只需要读取文件,还有其他库/odbc方法。是否寻求有关此问题的帮助?感谢您的建议使用开放式XML SDK。嗨,Tehseen,谢谢你的回复,我尝试了上面的代码,但还是遇到了同样的错误。它在代码的下面一行抛出错误。excel.Workbooks.Open(“路径”,omising,…);有人能在这个问题上帮忙吗?{System.Runtime.InteropServices.ComeException(0x800A03EC):Microsoft Excel无法访问文件“\\appcomp1\TEST\Final.xls”。可能有几个原因:•文件名或路径不存在。•该文件正被其他程序使用。•您试图保存的工作簿与当前打开的工作簿同名。