Principales respuestas
No trae datos al hacer el publish

Pregunta
-
Buenos dias a todos, queria saber qué puede estar pasando con este web service que estoy haciendo y no funciona.
Lo primero que hice fue desarrollar el web service, lo compilo y funciona perfecto. Luego lo publique con publish en IIS en windows 7 y cuando lo ejecuto ya me me devuelve nada de la base de datos.
El codigo por si lo necesitan es el siguiente:
Metodo:
[WebMethod]
public List<Marca> getMarcas()
{
Datos datos = new Datos();
return datos.GetMarcas();
}Metodo de Datos:
public List<Marca> GetMarcas()
{
List<Marca> listaMarcas = new List<Marca>();accesoDatos acc = new accesoDatos();
string query =
@"SELECT " +
"Marcas.Id_marca as id," +
"Marcas.nombre as nombre " +
"FROM Marcas ";
DataTable dt = acc.OleDbDataAccess(query, null);
if (dt != null)
{
foreach (System.Data.DataRow row in dt.Rows)
{
Marca marca = new Marca();
marca.id_marca = Convert.ToString(row[0]);
marca.nombre = Convert.ToString(row[1]);
listaMarcas.Add(marca);
}
}
return listaMarcas;
}Metodo de accesoDatos
public DataTable OleDbDataAccess(string query, ICollection<OleDbParameter> parametersCollection)
{
DataTable dt = new DataTable("Tabla");
OleDbConnection odc = new OleDbConnection(ConfigurationManager.ConnectionStrings["EiffelConnectionString"].ConnectionString);
OleDbDataAdapter odda = new OleDbDataAdapter(query, odc);
if (parametersCollection != null)
{
foreach (OleDbParameter p in parametersCollection)
odda.SelectCommand.Parameters.Add(p);
}
try
{
odc.Open();
odda.Fill(dt);
odc.Close();
return dt;
}
catch (Exception)
{
odc.Close();
}
return null;
}connection string (yo creo que el problema esta acá, pero no estoy seguro...):
<add name="EiffelConnectionString" connectionString="Provider=vfpoledb;Data Source=C:\Eiffel\DatosNuevos\target.dbc;Collating Sequence=machine;"/>
Saludos cordiales y gracias por responder
Ezequiel Lansztein
Respuestas
-
>>El proveedor 'vfpoledb' no está registrado en el equipo local.
eso se deba a que seguramente el sitio lo creaste con compatibilidad para 64bits y el proveedor de fox no lo soporta
compila cambiando el platform target a x86
y en el iis habilita la opcion imagen para la compatibilidad de 32 bit
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Karen MalagónModerator lunes, 20 de abril de 2015 19:00
Todas las respuestas
-
hola
>>Luego lo publique con publish en IIS en windows 7 y cuando lo ejecuto ya me me devuelve nada de la base de datos
no evaluaste que podrias estar teniendo un error y al hacer esto
catch (Exception)
{
odc.Close();
}nunca te enteras
al menos deberias loguear el problema o sino quitar el try..catch para poder ver en pantalla si hay algun exception
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
>>pero cómo podria loguear el problema?
para resolver solo el problema quita el try..catch y con eso veras el error, no necesitas loguear
pero despues de solucionado el problema si la idea es no mostrarlo los errores al usuario podrias usar log4net
Dejando huella: cómo registrar eventos de nuestras aplicaciones (logging) con Log4Net
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Leandro: muchas gracia spor la pronta respuesta, hice lo que me dijiste y me salió este error. Qué debo hacer?
System.InvalidOperationException: El proveedor 'vfpoledb' no está registrado en el equipo local. en System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) en System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) en System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) en System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) en System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) en System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) en System.Data.OleDb.OleDbConnection.Open() en Servicio.accesoDatos.OleDbDataAccess(String query, ICollection`1 parametersCollection) en C:\Users\Diego\documents\visual studio 2010\Projects\WebService1\Servicio\accesoDatos.cs:línea 24 en Servicio.Datos.GetArticulos() en C:\Users\Diego\documents\visual studio 2010\Projects\WebService1\Servicio\Datos.cs:línea 127 en Servicio.Service1.getArticulos() en C:\Users\Diego\documents\visual studio 2010\Projects\WebService1\Servicio\Service1.asmx.cs:línea 54
Ezequiel Lansztein
-
>>El proveedor 'vfpoledb' no está registrado en el equipo local.
eso se deba a que seguramente el sitio lo creaste con compatibilidad para 64bits y el proveedor de fox no lo soporta
compila cambiando el platform target a x86
y en el iis habilita la opcion imagen para la compatibilidad de 32 bit
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Karen MalagónModerator lunes, 20 de abril de 2015 19:00
-