Foros del Web » Programando para Internet » ASP Clásico »

usar base de datos en otro directorio

Estas en el tema de usar base de datos en otro directorio en el foro de ASP Clásico en Foros del Web. resulta que mi sitio funcionaba bien pero tuve que cambiar de hosting y ahora resulta que no puedo llamar archivos de otros directorios como mis ...
  #1 (permalink)  
Antiguo 23/02/2005, 16:55
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
usar base de datos en otro directorio

resulta que mi sitio funcionaba bien pero tuve que cambiar de hosting y ahora resulta que no puedo llamar archivos de otros directorios como mis bases de datos que siempre he usado asi:

basedatos = Server.MapPath("../base.mdb")

ahora simplemente no puedo, me manda un error medio raro en las clasicas pantallas de error de windows:
HTTP Error 500.12 - Server error: Application is busy restarting on the Web server.
Internet Information Services (IIS)




que es? que hago?
  #2 (permalink)  
Antiguo 23/02/2005, 17:18
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
por cierto los invito a conocer PortaGIGAS.com y naveguen por ella y me dicen que les parece la forma de trabajar del sitio, lo pongo esto aqui por que como esta en ASP pues quiero mas que nada me digan que les parece como trabaja, no tanto el diseño, si pueden usar el carrito de compras y mas...gracias
  #3 (permalink)  
Antiguo 23/02/2005, 17:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Y si puedes utilizar el mappath en ese hosting? hay algunos hostings que lo deshabilitan por razones de seguridad...porque a mi me parece que ese debe ser un error personalizado
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 23/02/2005, 18:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
y que otra opcion habria al mappath????
  #5 (permalink)  
Antiguo 23/02/2005, 18:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si nada mas lo ocupas en la conexion, utiliza mejor un DSN, casi todos los hostings te dan la opcion de utilizar DSN...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 23/02/2005, 18:25
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
no, el mappath lo uso para muchas cosas como manejo de archivos
  #7 (permalink)  
Antiguo 23/02/2005, 18:30
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
ademas supongo que si funciona mappath ya que esto si me funciona:
RS = Server.MapPath("base.mdb")

pero esto no
RS = Server.MapPath("../base.mdb")
  #8 (permalink)  
Antiguo 23/02/2005, 18:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si, porque no debe tener permiso para cambiar de directorio desde el IIS...prueba utilizando una ruta absoluta, en lugar de relativa, veras que si funciona
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 23/02/2005, 18:45
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
eso lo puedo configurar yo? y como puedo saber la ruta absoluta?

puedo usar bases de datos access con rutas absolutas?
  #10 (permalink)  
Antiguo 23/02/2005, 19:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pues si, pero de cualquier manera necesitarias saber toda la ruta en la cual residen tus directorios, y no se si te dejara, ya trataste de hacer un response.write Server.Mappath(".") ? y a lo mejor con eso te puedes hacer un archivo path.asp
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 23/02/2005, 19:51
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
deja lo checo y muchas gracias te cuento como va


gracias por que esto mas que foro parecia chat
  #12 (permalink)  
Antiguo 24/02/2005, 06:25
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 11 meses
Puntos: 5
Hey amigos, me pueden decir como pudo otorgar yo mismo permisos de lectura-escritura a un directorio?

Gracias
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #13 (permalink)  
Antiguo 24/02/2005, 08:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
¿tienes acceso al servidor?, si es así, pues basta con ir a las propiedades -> seguridad o bien, botón derecho -> Compartir y seguridad
  #14 (permalink)  
Antiguo 24/02/2005, 12:03
Avatar de etmoreno  
Fecha de Ingreso: diciembre-2002
Ubicación: near fireplace
Mensajes: 404
Antigüedad: 21 años, 6 meses
Puntos: 1
sjam:

Porqué no pruebas:

basedatos = Server.MapPath("..\base.mdb")

Con la barra invertida (chr(92))

Saludos ;)
  #15 (permalink)  
Antiguo 25/02/2005, 07:12
 
Fecha de Ingreso: enero-2003
Ubicación: punta arenas
Mensajes: 65
Antigüedad: 21 años, 5 meses
Puntos: 0
ocupa esta conexion :

Set con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../db/base.mdb")&";"

te recomiendo que crees un directorio exclusivo para las bases de datos, asi como en este ejemplo. queda mas ordenada la cosa ;)
  #16 (permalink)  
Antiguo 25/02/2005, 10:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
No usen nunca el ir pa'trás ("../") en un include file o en el server.mappath puesto que les puede funcionar en su servidor local (en su PC) pero no cuando lo suban a un proveedor de hosting.

Es más, es preferible que no te funcione ni siquiera en local por lo que te recomiendo que vallas a las propiedades de tu sitio (IIS), al tab "directorio particular", click en el botón "configuración", luego al tab "opciones de aplicción" y finalmente desmarcar "habilitar rutas de acceso primarias".

Es probable que luego de esto muchos de tus scripts dejen de funcionar dandote éstos errores:

Al hacer un include:
Cita:
Páginas Active Server, ASP 0131 (0x80004005)
El archivo de inclusión "../carpeta/archivo.asp" no puede utilizar ".." para indicar el directorio primario.
Al usar Server.MapPath:
Cita:
Server.MapPath(), ASP 0175 (0x80004005)
No se permite el uso de los caracteres ".." en el parámetro Path del método MapPath.

Para solucionar lo de los includes, usás "includes virtual" especificando la ruta y el archivo a incluir DESDE la raiz de la aplicación sin importa dénde se encuentre el "archivo inclusor":

Código:
<!--#include virtual="/carpeta/archivo.asp"-->
Es decir, usás el mismo include para todos los archivos sin importar si se encuentran en c:\inetpub\wwwroot\ o c:\inetpub\wwwroot\carpeta\ o c:\inetpub\wwwroot\carpeta\otra\otra_mas\etc\


Para el MapPath, es lo mismo. Colocás la ruta física a partir de la raiz de la aplicación:

Código:
Server.MapPath("\CarpetaQueCuelgaDeLaRaiz\OtraCarpeta\BaseDeDatos.mdb")
Saludos
__________________
...___...
  #17 (permalink)  
Antiguo 25/02/2005, 11:43
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
como siempre men excelente respuesta, gracias

solo una mas, al decir raiz de la aplicacion es raiz de donde esta el archivo que llama? o cual es el raiz de la aplicacion?
  #18 (permalink)  
Antiguo 25/02/2005, 11:47
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
La raiz de la aplicacion es el folder principal donde contienes a tu aplicacion

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 15/03/2005, 15:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
el hosting esta asi:
db
web

en web va el contenido y en db las bases de datos, el problema es que contenido en "web" debe llamar a la base de datos en db pero sin usar ../ como lo hago?
  #20 (permalink)  
Antiguo 11/04/2005, 09:34
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 5 meses
Puntos: 9
Problema sin solucionar

Bueno, así que por lo visto, sigue estando el problema sin solucionar...

Ya que si Server.MapPath("\..") devuelve la ruta a partir de la carpeta raiz, seguimos si poder acceder a la carpeta DB que se encuentra al mismo nivel que la carpeta raiz...

Nadie ha solucionado esto???

Gracias.
  #21 (permalink)  
Antiguo 15/04/2005, 09:41
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 5 meses
Puntos: 9
Tengo la solucion !!!

Bien, me autorespondo, ya que probando probando encontré la solución.

Para los #include, ya saben, como dice Al Zuwaga, usen #include virtual...

Para Server.MapPath, el problema en cuestión es que si el servidor tiene desactivada la opcion para navegar con rutas relativas, devuelve un error diciendo que la funcion Server.MapPath no permite los dos puntos (..).
a solución está en utilizar los dos puntos fuera de la funcion...

Uséase:

Ruta = Server.MapPath("../DB/datos.mdb")
- Esta línea devuelve el error que comentamos por utilizar los dos puntos dentro de la funcion Server.MapPath.

Ruta = Server.MapPath(".") & "/../DB/datos.mdb"
- Esto es aceptado por el servidor, ya que no utilizas los dos puntos dentro de la función Server.MapPath.

Realmente esta intruccion acaba construyendo algo así (por poner un ejemplo):
E:/Sites/TuSite/HTML/../DB/datos.mdb

Pero realmente esto es un ruta válida, uséase que funciona.

Suerte!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.