Метод закрытия OleDbConnection требует длительного времени выполнения

        conStr = String.Format(conStr, FilePath, isHDR);
        OleDbConnection connExcel = new OleDbConnection(conStr);
        OleDbCommand cmdExcel = new OleDbCommand();
        OleDbDataAdapter oda = new OleDbDataAdapter();
        DataTable dt = new DataTable();
        cmdExcel.Connection = connExcel;

        //Get the name of First Sheet
        connExcel.Open();
        DataTable dtExcelSchema;
        dtExcelSchema =            connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
        connExcel.Close();

Я использую приведенный выше код для чтения Excel. Но он застрял на connExcel.Close(); в течение нескольких секунд, а затем перейти к следующему утверждению. Это приводит к поздней обработке страницы. Какие-либо предложения??

Обновление моего вопроса, чтобы дать более подробную информацию.

тестовый пример: - Я загрузил файл xls, это заняло обычное время. Я загрузил файл xlsx, он остановился на connExcel.close() на 25 секунд. Теперь я загрузил файл xls, и он также остановился для xls.

я использовал следующие строки подключения

для xls: - connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Источник данных={0}; Расширенные свойства='Excel 8.0;HDR={1}'"

для xlsx: - connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Источник данных={0}; Расширенные свойства='Excel 8.0;HDR={1}'"


person Chandikumar    schedule 02.07.2015    source источник
comment
Возможный дубликат stackoverflow.com/questions/5721564/multi-threading-in -vba   -  person Ahmad    schedule 02.07.2015
comment
Попробуйте решение в этом ответе: stackoverflow.com/a/27245931/736172   -  person Ahmad    schedule 02.07.2015
comment
Привет, Ахмад, это код С#, который просто читает сообщения электронной почты в Excel. Он не требует многопоточности. он просто застрял на connExcel.Close(); в течение 20-40 секунд, затем дает выход.   -  person Chandikumar    schedule 02.07.2015
comment
Я запускаю тот же код на сервере, и он работает нормально. но на локальной машине это вызывает проблему. Я использую экспресс-выпуск Visual Studio.   -  person Chandikumar    schedule 03.07.2015
comment
@Chandikumar Привет, Чандик, ты когда-нибудь находил решение этой проблемы?   -  person Bassie    schedule 13.06.2017
comment
с помощью System.Runtime.InteropServices; использование System.Threading.Tasks; с помощью Excel = Microsoft.Office.Interop.Excel; @Bassie Я включил эти три вещи. и использовал только одну строку подключения для xls и xlsx. connectionString = Provider = Microsoft.ACE.OLEDB.12.0; Источник данных = + filePath +; Расширенные свойства = \ Excel 12.0; HDR = Нет; IMEX = -1 \;   -  person Chandikumar    schedule 13.06.2017
comment
@Chandikumar Ах, спасибо за ваш ответ, но я вижу эту ошибку при использовании ACE.OLEDB для подключения к MS Acccess. У вас есть идеи, действительно ли Access поддерживает расширенные свойства? Не могу найти примеры   -  person Bassie    schedule 13.06.2017