martes, 29 de julio de 2014

System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.

En una reciente migración de un servidor, nos topamos con este mensaje de error, cuando nuestra aplicación de ASP.NET intentaba conectar con el servidor de base de datos de Oracle.

El mensaje cuando lanzaba cualquier consulta era el mismo:

System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.


Existen dos posibilidades para este error.

Recordemos que estamos en una nueva máquina y que estamos tratando de acceder a la BD de Oracle desde nuestra aplicación de ASP.NET.

Las causas pueden ser dos muy diferentes:
  1. No se ha instalado el Microsoft OLE DB provider for Oracle.
  2. La carpeta de la instalación de Oracle no tiene permiso para el usuario de ASP.NET

Si se trata del primer caso, lo más seguro es que luego hay que atender también el segundo caso.

1. Instalar Microsoft OLE DB provider for Oracle.  


Los enlaces de descarga se pueden encontrar en:
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

Es necesario conocer muy bien la máquina y el sistema operativo que se tiene en el servidor para seleccionar el enlace adecuado.

 2. Dar permisos administrativos a la carpeta de Oracle


El procedimiento es sencillo:

  • Dar permisos sobre la carpeta de Oracle a los usuarios “Authenticated Users” y “ASP.net”
  • Loguearse a Windows con credenciales administrativas.
  • Ir a la carpeta raíz de Oracle que generalmente se encuentra en: C:\Oracle.
  • Ir a las propiedades de la carpeta y seleccionar la pestaña “Seguridad”.
  • Click on “Authenticated Users” item in the “Name” list.
  • Agregar los usuarios “Authenticated Users” y “ASP.net” y asignarles permisos de “Full Control”.
  • Dar clic en el botón “Avanzado”, se eligen los usuarios mencionados anteriormente y se seleccionar las opciones “Permitir que los permisos heredables del primario se propaguen a este objeto y a todos los objetos secundarios. Incluirlos junto con las entradas indicadas aquí de forma explícita” y “Reemplazar las entradas de permisos en todos los objetos secundarios con aquellas entradas incluidas aquí y que sean relativas a los objetos secundarios”.
  • Dar clic en OK y reiniciar el equipo para asegurarse de que los cambios surtan efecto.

NOTA IMPORTANTE


"Reiniciar la máquina."

Aquí no hay experiencia que valga... o se reinicia la máquina o todo lo mencionado en este artículo puede quedar en el papel con que vamos a limpiar los vídrios.

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...