Se me ha pedido que transfiera una aplicación WinForms que usa el patrón MVP a una página web. La aplicación, entre otras cosas, carga un archivo CSV a una DataTable y luego hace un poco de trabajo.Nombre de origen de datos no encontrado y no se especificó ningún controlador predeterminado
El archivo CSV se carga en el servidor de OK y luego leer el siguiente código
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();
}
}
}
en este punto me sale el error:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Ahora el código funciona bien en Windows Forms, pero falla en la web. ¿Hay algo que necesite cambiar en IIS, mi archivo de configuración u otra cosa para que este código funcione? ¿O hay algo más fundamental que debo hacer?
actualización
OK, así que todo salió lo que fue diferente entre mis dos versiones de código: La versión de Windows Forms se ejecuta como de 32 bits, lo más pronto que lo cambié a 64 bits que arrojó el mismo error . Ver: 32-bit Text drivers (Microsoft Access , Microsoft Excel and Text files) from a 64 bit application on windows 7
Para solucionar las cosas, instalé los controladores Access de 64 bits de http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255 pero sigo recibiendo el mismo error.
Si puedo comprobar el Administrador de orígenes de datos ODBC puedo ver "Microsoft Access Driver de texto (* .txt, * .csv) | 14.00.47600.1000 | Microsoft Corporation | ACEODBC.dll
por lo que parece que' re installed OK, entonces ¿por qué seguiría fallando?
No estoy diciendo que esta sea una opción para ti (no afirmaste ni negaste el requisito), pero ¿qué hay de retroceder a 32 bits? Suponiendo IIS 7+, ¿intentó ejecutar el grupo de aplicaciones en el modo Activar aplicaciones de 32 bits? Funciona en mi máquina! :) – mlhDev
Sí, mi requisito era hacerlo funcionar en un servidor web de 64 bits – openshac
¡Bravo! He estado luchando con este problema durante semanas hasta que encontré su solución. –