尝试读取Excel文件ASP.net时出现COM Interop异常

时间:2012-04-17 07:51:20

标签: asp.net excel exception com interop

我有一个非常简单的ASP.net 4.0应用程序,它允许用户从常用的Excel文件中读取数据。 Excel文件位于应用程序本身内,即它位于服务器端,位于根目录下方的文件夹中。

我正在使用以下代码使用Excel数据填充数据集:

public DataTable GetExcelData(string ExcelFilePath)
    {
        DataTable dt = new DataTable();
        string OledbConnectionString = string.Empty;
        OleDbConnection objConn = null;
        OledbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0;";
        objConn = new OleDbConnection(OledbConnectionString);

        if (objConn.State == ConnectionState.Closed)
        {
            objConn.Open();
        }

        string resName = "'";
        string depName = department;
        resName += userLastName + ", " + userFirstName + "'";
        OleDbCommand objCmdSelect = new OleDbCommand("Select * from [" + depName + "$A3:Q10000] where Resource=" + resName, objConn);
        OleDbDataAdapter objAdapter = new OleDbDataAdapter();
        objAdapter.SelectCommand = objCmdSelect;
        DataSet objDataset = new DataSet();
        objAdapter.Fill(objDataset, "ExcelDataTable");
        dt = objDataset.Tables[0];
        addSumRow(dt);
        objConn.Close();
        return objDataset.Tables[0];
    }

在此之后,我将数据集附加到Gridview,这就是它。

现在,当我在本地主机上运行应用程序时,显示Excel数据没有问题,但是,在部署到我们的Web服务器后,应用程序因此错误而失败:

  

指定的域名不存在或无法联系。

     

描述:执行当前web>请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及它在代码中的起源位置。

     

异常详细信息:System.Runtime.InteropServices.COMException:指定的域>要么不存在,要么无法联系。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。 >可以使用下面的>异常堆栈跟踪来识别关于异常的起源和位置的信息。

非常感谢任何帮助! 谢谢!

1 个答案:

答案 0 :(得分:0)

你可能会尝试一些事情

1>禁用匿名访问并启用身份模拟 2>确保Excel文件路径正确