【发布时间】:2012-04-28 13:21:57
【问题描述】:
我有一个非常简单的 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 >request 期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及它>源自代码的位置。
异常详细信息:System.Runtime.InteropServices.COMException:指定域>不存在或无法联系。
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。 >可以使用>下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
非常感谢任何帮助! 谢谢!
【问题讨论】:
-
似乎错误不是面向 Excel 文件的。如果您查看附加的代码,错误是从 Default.aspx.cs:239(SearchResult userInfo = search.FindOne()) 生成的,我正在执行 AD 查找以获取用户名等。
标签: asp.net excel exception com interop