Problemas conectandome con Access Database

29/07/2004 - 16:12 por E. Cubillán | Informe spam
Saludos,

Tengo el siguiente problema para conectarme a un archivo de Microsoft Access
en el Servidor:

Uso el siguiente Conection String: (colocado en el Web.config de un
WebService [.NET])

<add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>

Tambien tengo un Connectrion String para conectarme a una BD de SQL Server
2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y para
ello cambio el usuario anonimo con el que se ejecuta el Web Service en IIS
5.0 y el Web.config coloco la instrucción:

<identity impersonate="true"/>

Luego de ello, el Web Service se conecta perfectamente a SQL Server (utilizo
la clase SqlClient) pero cuando pruebo la conexion con Access (usando
OleDbClient) me da el siguiente error:

Unspecified error

Lo que me tiene desconcertado es que si cambio la etiqueta

<identity impersonate="true"/>
a
<identity impersonate="false"/>

La conexión a Access funciona correctamente... En mi PC de desarrollo todo
funciona bien, pero en el Servidor donde expongo el Web Service es donde se
me presenta el problema.

Alguien podría darme una pista para corregir el comportamiento? He
modificado el ACL de todas las carpetas que usa .Net Framework y mi
aplicación y no he podido arreglarlo.

Atte.
Eddy Javier Cubillán
Caracas - Venezuela

Preguntas similare

Leer las respuestas

#1 Jose Marcenaro
29/07/2004 - 22:11 | Informe spam
Hola Eddy, un saludo desde Argentina.
Es raro lo que te pasa... por la descripcion precisa que presentas, casi sin
duda tiene que ser algun permiso que le está faltando a la cuenta que
asignas como usuario anónimo de la aplicacion.
Para verificarlo, prueba colocar (con impersonate=true) a un administrador
del equipo como usuario anonimo.
Si asi funciona, deberas volver al usuario anterior y empezar a verificar
permisos sobre
- carpetas del NET framework
- carpeta de la base de datos MDB y toda la navegacion hasta llegar a ella
(es decir permiso de lectura sobre el C:\, sobre C:\Carpeta_Aplicacion, etc)
- y no se me ocurre que cosa mas... pero al menos sabras que va por ahi la
cosa

Suerte con eso, saludos
Jose Marcenaro

"E. Cubillán" escribió en el mensaje
news:
Saludos,

Tengo el siguiente problema para conectarme a un archivo de Microsoft


Access
en el Servidor:

Uso el siguiente Conection String: (colocado en el Web.config de un
WebService [.NET])

<add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>

Tambien tengo un Connectrion String para conectarme a una BD de SQL Server
2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y


para
ello cambio el usuario anonimo con el que se ejecuta el Web Service en IIS
5.0 y el Web.config coloco la instrucción:

<identity impersonate="true"/>

Luego de ello, el Web Service se conecta perfectamente a SQL Server


(utilizo
la clase SqlClient) pero cuando pruebo la conexion con Access (usando
OleDbClient) me da el siguiente error:

Unspecified error

Lo que me tiene desconcertado es que si cambio la etiqueta

<identity impersonate="true"/>
a
<identity impersonate="false"/>

La conexión a Access funciona correctamente... En mi PC de desarrollo todo
funciona bien, pero en el Servidor donde expongo el Web Service es donde


se
me presenta el problema.

Alguien podría darme una pista para corregir el comportamiento? He
modificado el ACL de todas las carpetas que usa .Net Framework y mi
aplicación y no he podido arreglarlo.

Atte.
Eddy Javier Cubillán
Caracas - Venezuela


Respuesta Responder a este mensaje
#2 E. Cubillán
29/07/2004 - 23:24 | Informe spam
Hola José

Tanto el usuario que estoy utilizando como el usuario aspnet, tienen
privilegios de Lectura/Escritura en la carpeta donde esta la base de datos
(y de lectura en toda la ruta de navegación). También en las carpetas del
.Net Framework

Estoy usando un usuario de dominio que no tiene privilegios de logon local
en el servidor... Crees que esto tenga algo que ver?

Voy a probar con un usuario administrador a ver que ocurre.

La excepción es la siguiente:

<excepcion>
<type>System.Data.OleDb.OleDbException</type>
<message>Unspecified error</message>
<source>Microsoft JET Database Engine</source>
<stacktrace> at System.Data.OleDb.OleDbConnection.ProcessResults(Int32
hr)
at System.Data.OleDb.OleDbConnection.InitializeProvider()
at System.Data.OleDb.OleDbConnection.Open()
at Datos.ExecuteNonQuery(String connectionString, CommandType
commandType, String commandText)
at vRegistrarError(String sData, String sDescripcionError, String
sMetodo, String sSoporte, String sCodEve, String sSpEjecutado)</stacktrace>
<targetsite>Void ProcessResults(Int32)</targetsite>
</excepcion>

La clase Datos esta definida así:

internal class Datos
{
#region ExecuteNonQuery
public static void ExecuteNonQuery(string connectionString, CommandType
commandType, string commandText)
{
using (OleDbConnection cn = new OleDbConnection (connectionString))
{
cn.Open();
OleDbCommand cmd = new OleDbCommand(commandText,cn);
cmd.ExecuteNonQuery();
}
}
#endregion
}




"Jose Marcenaro" escribió en el mensaje
news:%
Hola Eddy, un saludo desde Argentina.
Es raro lo que te pasa... por la descripcion precisa que presentas, casi


sin
duda tiene que ser algun permiso que le está faltando a la cuenta que
asignas como usuario anónimo de la aplicacion.
Para verificarlo, prueba colocar (con impersonate=true) a un administrador
del equipo como usuario anonimo.
Si asi funciona, deberas volver al usuario anterior y empezar a verificar
permisos sobre
- carpetas del NET framework
- carpeta de la base de datos MDB y toda la navegacion hasta llegar a


ella
(es decir permiso de lectura sobre el C:\, sobre C:\Carpeta_Aplicacion,


etc)
- y no se me ocurre que cosa mas... pero al menos sabras que va por ahi


la
cosa

Suerte con eso, saludos
Jose Marcenaro

"E. Cubillán" escribió en el mensaje
news:
> Saludos,
>
> Tengo el siguiente problema para conectarme a un archivo de Microsoft
Access
> en el Servidor:
>
> Uso el siguiente Conection String: (colocado en el Web.config de un
> WebService [.NET])
>
> <add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
> ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
> None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>
>
> Tambien tengo un Connectrion String para conectarme a una BD de SQL


Server
> 2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y
para
> ello cambio el usuario anonimo con el que se ejecuta el Web Service en


IIS
> 5.0 y el Web.config coloco la instrucción:
>
> <identity impersonate="true"/>
>
> Luego de ello, el Web Service se conecta perfectamente a SQL Server
(utilizo
> la clase SqlClient) pero cuando pruebo la conexion con Access (usando
> OleDbClient) me da el siguiente error:
>
> Unspecified error
>
> Lo que me tiene desconcertado es que si cambio la etiqueta
>
> <identity impersonate="true"/>
> a
> <identity impersonate="false"/>
>
> La conexión a Access funciona correctamente... En mi PC de desarrollo


todo
> funciona bien, pero en el Servidor donde expongo el Web Service es donde
se
> me presenta el problema.
>
> Alguien podría darme una pista para corregir el comportamiento? He
> modificado el ACL de todas las carpetas que usa .Net Framework y mi
> aplicación y no he podido arreglarlo.
>
> Atte.
> Eddy Javier Cubillán
> Caracas - Venezuela
>
>


Respuesta Responder a este mensaje
#3 E. Cubillán
30/07/2004 - 00:19 | Informe spam
Por ahi lei que debo darle permiso a la carpeta de OLEDB en Program
Files\Common Files\System, pero tampoco me resuelve el problema.

Probe con otro usuario de dominio, que es adminsitrador local del servidor y
funciona... sin embargo si incluyo al usuario anterior en el grupo de
administradores locales no funciona...

Lo que me queda es preguntarle al administrador del dominio que me compare
las políticas de seguridad aplicadas al usuario que estoy utilizando con el
usuario que si funciona.


"Jose Marcenaro" escribió en el mensaje
news:%
Hola Eddy, un saludo desde Argentina.
Es raro lo que te pasa... por la descripcion precisa que presentas, casi


sin
duda tiene que ser algun permiso que le está faltando a la cuenta que
asignas como usuario anónimo de la aplicacion.
Para verificarlo, prueba colocar (con impersonate=true) a un administrador
del equipo como usuario anonimo.
Si asi funciona, deberas volver al usuario anterior y empezar a verificar
permisos sobre
- carpetas del NET framework
- carpeta de la base de datos MDB y toda la navegacion hasta llegar a


ella
(es decir permiso de lectura sobre el C:\, sobre C:\Carpeta_Aplicacion,


etc)
- y no se me ocurre que cosa mas... pero al menos sabras que va por ahi


la
cosa

Suerte con eso, saludos
Jose Marcenaro

"E. Cubillán" escribió en el mensaje
news:
> Saludos,
>
> Tengo el siguiente problema para conectarme a un archivo de Microsoft
Access
> en el Servidor:
>
> Uso el siguiente Conection String: (colocado en el Web.config de un
> WebService [.NET])
>
> <add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
> ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
> None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>
>
> Tambien tengo un Connectrion String para conectarme a una BD de SQL


Server
> 2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y
para
> ello cambio el usuario anonimo con el que se ejecuta el Web Service en


IIS
> 5.0 y el Web.config coloco la instrucción:
>
> <identity impersonate="true"/>
>
> Luego de ello, el Web Service se conecta perfectamente a SQL Server
(utilizo
> la clase SqlClient) pero cuando pruebo la conexion con Access (usando
> OleDbClient) me da el siguiente error:
>
> Unspecified error
>
> Lo que me tiene desconcertado es que si cambio la etiqueta
>
> <identity impersonate="true"/>
> a
> <identity impersonate="false"/>
>
> La conexión a Access funciona correctamente... En mi PC de desarrollo


todo
> funciona bien, pero en el Servidor donde expongo el Web Service es donde
se
> me presenta el problema.
>
> Alguien podría darme una pista para corregir el comportamiento? He
> modificado el ACL de todas las carpetas que usa .Net Framework y mi
> aplicación y no he podido arreglarlo.
>
> Atte.
> Eddy Javier Cubillán
> Caracas - Venezuela
>
>


Respuesta Responder a este mensaje
#4 E. Cubillán
30/07/2004 - 15:10 | Informe spam
Saludos,

No creo que sea permiso en la carpeta donde esta la BD de Access porque
cuando ocurre la excepción mando a crear un archivo txt en la carpeta con
toda la traza de la excepción y este último archivo lo crea perfectamente.

Creo que el problema es con alguna carpeta del sistema, ya que incluí al
usuario en el grupo de Administradores Locales del Servidor (de desarrollo)
y ahora esta funcionando correctamente. Me gustaría saber cual permiso me
falta agregar porque cuando instalemos la solución en Producción no me
dejaran incluir el usuario en el grupo de Administradores.

A continuación les muestro los permisos que he puesto en el servidor:

1) Permiso = Read & Execute:
- "C:\Program Files" para llegar a "C:\Program Files\Common Files\System"
- "C:\WINNT" para llegar a "C:\WINNT\Microsoft.NET\Framework\v1.1.4322"
- D:\MiAplicacion

2) Permiso = Modify:
- C:\TEMP
- C:\WINNT\Temp
- C:\WINNT\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
- D:\MiAplicacion\Log (Aquí es donde esta la BD de Access)

Atte.
Eddy Javier Cubillán
Caracas - Venezuela


"E. Cubillán" escribió en el mensaje
news:
Saludos,

Tengo el siguiente problema para conectarme a un archivo de Microsoft


Access
en el Servidor:

Uso el siguiente Conection String: (colocado en el Web.config de un
WebService [.NET])

<add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>

Tambien tengo un Connectrion String para conectarme a una BD de SQL Server
2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y


para
ello cambio el usuario anonimo con el que se ejecuta el Web Service en IIS
5.0 y el Web.config coloco la instrucción:

<identity impersonate="true"/>

Luego de ello, el Web Service se conecta perfectamente a SQL Server


(utilizo
la clase SqlClient) pero cuando pruebo la conexion con Access (usando
OleDbClient) me da el siguiente error:

Unspecified error

Lo que me tiene desconcertado es que si cambio la etiqueta

<identity impersonate="true"/>
a
<identity impersonate="false"/>

La conexión a Access funciona correctamente... En mi PC de desarrollo todo
funciona bien, pero en el Servidor donde expongo el Web Service es donde


se
me presenta el problema.

Alguien podría darme una pista para corregir el comportamiento? He
modificado el ACL de todas las carpetas que usa .Net Framework y mi
aplicación y no he podido arreglarlo.

Atte.
Eddy Javier Cubillán
Caracas - Venezuela


Respuesta Responder a este mensaje
#5 E. Cubillán
30/07/2004 - 17:43 | Informe spam
Hola a Todos,

Ya esta arreglado, faltaba colocar los siguientes permisos:

- Read en C:\Documents and Settings\NombreServidor\ASPNET
- Modify en C:\Documents and Settings\NombreServidor\ASPNET\Local
Settings\Temp

Gracias Jhovanny Villegas (de Microsoft) por el dato de usar la herramienta
FILEMON.EXE (sysinternals.com) con ella pueder ver los errores Access
Denied.

Atte.
Eddy Javier Cubillán
Caracas - Venezuela


"E. Cubillán" escribió en el mensaje
news:
Saludos,

Tengo el siguiente problema para conectarme a un archivo de Microsoft


Access
en el Servidor:

Uso el siguiente Conection String: (colocado en el Web.config de un
WebService [.NET])

<add key="connectionstring" value="Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source=C:\Carpeta_Aplicacion\Archivo.mdb;Mode=Share Deny
None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"/>

Tambien tengo un Connectrion String para conectarme a una BD de SQL Server
2000... Necesito utilizar Seguridad Integrada Windows con SQL Server y


para
ello cambio el usuario anonimo con el que se ejecuta el Web Service en IIS
5.0 y el Web.config coloco la instrucción:

<identity impersonate="true"/>

Luego de ello, el Web Service se conecta perfectamente a SQL Server


(utilizo
la clase SqlClient) pero cuando pruebo la conexion con Access (usando
OleDbClient) me da el siguiente error:

Unspecified error

Lo que me tiene desconcertado es que si cambio la etiqueta

<identity impersonate="true"/>
a
<identity impersonate="false"/>

La conexión a Access funciona correctamente... En mi PC de desarrollo todo
funciona bien, pero en el Servidor donde expongo el Web Service es donde


se
me presenta el problema.

Alguien podría darme una pista para corregir el comportamiento? He
modificado el ACL de todas las carpetas que usa .Net Framework y mi
aplicación y no he podido arreglarlo.

Atte.
Eddy Javier Cubillán
Caracas - Venezuela


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida