vb.net - visual - System.Data.OracleClient requiere el software de cliente Oracle versión 8.1.7
ejecutar consulta oracle c# (7)
¿Por qué no usar esto: dotConnect for Oracle (anteriormente conocido como OraDirect .NET)?
Se puede configurar para no requerir un cliente de Oracle en absoluto.
Hemos estado usando esto tanto en servicios de Windows como en servicios web ASP.NET y funciona como un encanto.
Tengo un sitio web que desarrollé en Vista usando Vb.net9. Hace una conexión con Oracle. para la conexión, uso System.Data.OracleClient. Funciona bien en mi máquina y nuestro servidor de prueba, pero no funciona en el servidor de producción. Instalamos Oracle Client 11 en el servidor. El error es System.Data.OracleClient requiere el software de cliente Oracle versión 8.1.7
Lo hemos intentado, crear una aplicación de consola que abre la conexión, la conexión funciona bien, se abre, muestra un mensaje y todo está bien allí.
Luego hacemos un formulario web simple, lo ponemos en el directorio del programa, solo un botón, abre la conexión, prueba ... catch, agarra el error, mismo error.
La aplicación de consola se estaba ejecutando bajo un administrador, un sitio web que se ejecuta bajo iwam. ¿Es posible que iwam tenga un camino diferente?
El autor de esta publicación (ahora publicación eliminada) sugiere verificar su carpeta C:/Windows/System32
para asegurarse de que oci.dll
existe allí. Copiar el archivo desde el directorio principal de Oracle resolvió este problema para mí.
La primera vez que pasamos a Vista con Oracle 10g, experimentamos este problema cuando instalamos el cliente de Oracle en nuestras cajas de Vista, incluso cuando estábamos ejecutando privilegios de administrador durante la instalación.
Oracle sacó una nueva versión del cliente 10g (10.2.0.3) que era compatible con Vista.
Creo que esto fue después de que se lanzó 11g, por lo que es posible que haya una versión compatible con Vista para 11g también.
Me he encontrado con este error docenas de veces:
Porque
Los permisos de seguridad no se establecieron correctamente cuando el cliente de Oracle se instaló en Windows con NTFS. El resultado de esto es que el contenido del directorio ORACLE_HOME no es visible para los usuarios autenticados en la máquina; esto causa un error mientras System.Data.OracleClient se está comunicando con el software Oracle Connectivity de ASP.NET utilizando privilegios de usuario autenticado.
Solución
Para solucionar el problema, debe otorgar el privilegio del grupo de usuarios autenticados al directorio principal de Oracle.
- Inicie sesión en Windows como usuario con privilegios de administrador.
- Inicie el Explorador de Windows y navegue a la carpeta ORACLE_HOME.
- Elija propiedades en la carpeta ORACLE_HOME.
- Haga clic en la pestaña "Seguridad" de la ventana "Propiedades".
- Haga clic en el elemento "Usuarios autenticados" en la lista "Nombre".
- Desmarque la casilla "Leer y ejecutar" en la lista "Permisos" debajo de la columna "Permitir".
- Vuelva a marcar el cuadro "Leer y ejecutar" en la columna "Permitir".
- Haga clic en el botón "Avanzado" y en "Entradas de permiso" verifique que "Usuarios autenticados" se enumeran con permiso = "Leer y ejecutar", y Aplicar a = "Esta carpeta, subcarpetas y archivos". De lo contrario, edite esa línea y asegúrese de que el cuadro desplegable "Aplicar a" esté configurado en "Esta carpeta, subcarpetas y archivos". Esto ya debería estar configurado correctamente, pero es importante que lo verifiques.
- Haga clic en el botón "Aceptar" hasta que cierre todas las ventanas de propiedades de seguridad. El cursor puede presentar el reloj de arena durante unos segundos mientras aplica los permisos que acaba de cambiar a todas las subcarpetas y archivos.
- Reinicie para asegurarse de que los cambios hayan tenido efecto.
Prueba tu aplicación nuevamente.
Oracle Client versión 11 no se puede conectar a las bases de datos 8i. Necesitará un cliente en la versión 10 como máximo.
Para mí, el problema era que un plugin en mi Visual Studio comenzó a forzar mi aplicación al modo x64 de 64 bits, por lo que el controlador de Oracle no se encontraba ya que tenía instalado Oracle 32bit.
Entonces, si tiene este problema, intente ejecutar Visual Studio en safemode (devenv / safemode). Pude ver que estaba buscando en SYSWOW64 el archivo ic.dll usando la aplicación ProcMon de SysInternals / Microsoft.
Actualización: para mí fue el producto JustTrace de Telerik el que causó el problema, probablemente se enganchó y afectó la versión de tiempo de ejecución de alguna manera para hacer el seguimiento.
Actualización 2: No solo JustTrack causa un problema, JustMock está causando el mismo problema en el modo de procesador. JustMock es más fácil de arreglar: haga clic en JustMock-> Disable Profiler y luego el controlador oracle de mi aplicación web se ejecuta en el modo de CPU correcto. Esto podría ser corregido por Telerik en el futuro.
Actualización 1: es posible que diferentes usuarios tengan una ruta diferente. Pero no es el problema probable aquí. Hay más posibilidades de que el usuario que el usuario iwam no tenga permiso para el directorio del cliente Oracle.
Actualización 0: se supone que debe funcionar Compruebe la variable de entorno (que es necesaria para encontrar el cliente de Oracle y tnsnames.ora). Además, tal vez tenga problemas de 32/64 bits. Además, considere usar Oracle Data Provider para .NET (busque odp.net)