Меня попросили перенести приложение WinForms, которое использует шаблон MVP, на веб-страницу.Приложение, помимо прочего, загружает CSV-файл в DataTable, а затем выполняет некоторую работу.
CSV-файл загружен на сервер, а затем прочитан со следующим кодом
string connectionString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=asc,csv,tab,txt;Persist Security Info=False;Dbq=C:\Temp\";
//check that file exists and in correct format
if (File.Exists(this.WorkingFileName))
{
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
// Determine number of rows
string selectCount = "select count(*) from [MyFile.csv]");
using (OdbcCommand command = new OdbcCommand(selectCount, connection))
{
connection.Open();
}
}
}
в этот момент я получаю сообщение об ошибке:
ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию
Сейчаскод отлично работает в WinForms, но не работает в сети.Что-то, что мне нужно изменить в IIS, в моем конфигурационном файле или что-то еще, чтобы заставить этот код работать?Или есть что-то более фундаментальное, что мне нужно сделать?
Обновление
ОК, поэтому я выяснил, что отличалось между двумя моими версиями кода: версия WinForms работала как32-разрядный, как только я изменил его на 64-разрядный, он выдал ту же ошибку.См .: 32-разрядные текстовые драйверы (Microsoft Access, Microsoft Excel и текстовые файлы) из 64-разрядного приложения в Windows 7
Чтобы исправить положение, я установил 64-разрядные драйверы Access из http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255 но я все еще получаю ту же ошибку.
Если я проверяю своего администратора источника данных ODBC, я вижу «Текстовый драйвер Microsoft Access (* .txt, * .csv) | 14.00.47600.1000 | MicrosoftCorporation | ACEODBC.dll
Похоже, что они установлены нормально, так почему же это все равно не работает?