UNC-путь был моей точной проблемой.На моем локальном компьютере я мог без проблем подключиться к желаемому документу Excel и работать со строками из документа Excel.Однако, когда я развернул свой веб-сайт на сервере, он подключился к документу Excel с использованием приведенной ниже строки подключения, но строки не возвращались.Моя строка подключения была:
string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR=YES\";", filePath); //where filePath is the excel document file name
Использование OleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
для возврата TABLE_NAME / Sheet документа Excel, который не дал результатов на сервере.
Я обнаружил, что веб-сервер(IIS), подключенный через UNC для получения файлов веб-сайта на другом сервере, но, как упоминал Дэвид выше, ACE очень темпераментен с UNC-путямиИспользование System.Web.HttpContext.Current.Server.MapPath
решает эту проблему.Вот моя последняя строка подключения:
string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR=YES\";", System.Web.HttpContext.Current.Server.MapPath(filePath));