![]() |
ISAPI con delphi
Estoy tratando de hacer un sitio con páginas dinamicas, de hecho he desarrollado un pequeño ejemplo y compilado la DLL, pero resulta que no me funciona, es decir que cuando invoco desde el navegador alguna accion de las que se encuentran en la DLL, me manda el error 404, que segun tengo entendido se debe a que no se encuentra la página; este 'sitio' lo tengo sobre Windows 2003 y estoy corriendo en este el IIS 6.0 el cual tiene permitido el ISAPI.
http://avt7ya.bay.livefilestore.com/...iis.png?psid=1 He puesto la pagina html con la que ingreso en el directorio 'c:\inetpub\wwwroot\', y la dll generada en delphi2010 en la carpeta 'Scripts' Este es el codigo de la DLL(cabe mencionar que es el ejemplo de un tuto de RD identico, solo aguna variaciones) Código:
unit WebMain; Código:
<html> Dada la informacion (a ver si no se durmieron con mi explicacion):D, cuando le doy click en el boton 'Enviar' por ejemplo y me manda el codigo 404, ahora despues de tanta explicacion, mis dudas es: ¿debo hacer alguna configuracion especial en el IIS? o bien a ¿que se debe que no funcione?, ayuda porfavor!!!:o |
Me parece recordar que para que funcione desde fuera tienes que tener abierto el puerto 80. ¿Has comprobado si se trata de eso?
Saludos |
Hola ElKurgan, antes que nada, gracias por responder a mmi pregunta; si, esta abierto el puerto 80, de hecho tengo una pagina estatica HTML, y puedo accesar sin problema, cuando postee mi pregunta tenia el problema de que si ponia http://miservidor/miextension.dll me daba el cuadro para descargar la dll, en lugar de mostrar la informacion que debia. Esto lo solucione, agregando la dll en la lista de extenciones:
Ahora el problema es que solo me muestra la accion que puse como default, me explico: Ahora si pongo http://miservidor/miextension.dll me muestra una lista de la tiendas que tengo en mi BD (esa es la accion que tengo definida por defecto), pero si realizo una consulta (una de las demas acciones que estan definidas en mi WebModule) por ejemplo: http://miservidor/miextension/detalletienda?tienda=10 me manda la misma pagina, es decir no me genera error ni nada. Asi esta la dll en mi servidor: https://xcns7g.bay.livefilestore.com...dll.jpg?psid=1 Si necesitan alguna info mas, le agradezco que me digan, para que me pueda ayudar a solucionar este problema. Igual y la bola de cristal de casimiro entra en accion, y me viene a salvar :D |
新加的空白文章2
这是新加的空白文章2,可以在ubb可视化编辑器中,添加和修改文章内容。
|
Hola esta es una prueba
|
Utiliza "Vcl for the web", te va a ahorrar muchísimo trabajo y tienes muchos ejemplos disponibles (En cuanto he visto que desde tu programa tienes que preparar el código HTML de respuesta me he echado las manos a la cabeza )
Lo que te propongo te permite utilizar isapi's con Windows Server y con los Layouts (Templates ) puedes crear una página web incorporando los objetos de tu programa que quieras ( grids, edits, listbox, etc...) |
Posible causa y consejos
Hola,
Si te responde siempre con la página de default; lo más probable es que el problema no sea de ISAPI sino de el encriptamiento del camino. Digo, a menos que el URL de tú servidor lo hayas copiado mal, estás usando encriptamiento. La lógica del encriptamiento debería ser : http://miservidor/miextension.dll/Datosencriptados Donde Datosencriptados debería ser una cadena que encriptara la concatenación del PathInfo con los parámetros de la llamada. Con eso localizaría al DLL sin problemas y luego, en el evento BeforeDispatch se puede atrapar la cadena enciptada y ahí desencriptar para dirigir los parámetros al PathInfo adecuado. De esa forma, para controlar el buen funcionamiento de la encriptación, bastaría depurar el DLL poniendo un punto de ruptura en BeforeDispatch. Es de anotar que no es facil configurar y usar IIS para depuración. En su lugar yo uso Omnisecure, una vieja herramienta inadecuada para producción; pero, muy facil de usar para depurar. Un último consejo : No mezcles los componente de Base de datos con el WebModule. Es mejor tenerlos por separado. El WebModule debería implementar solo la lógica de encriptamiento, el chequeo de permiso y la respuesat inmediata a cada requerimiento; pero, ya lo que es el valor a devolver en el Response.Content debería ser una función devuelta por un TDataModule de Datos independiente. Típicamente, uno usa mútiples TDataModules para atender los requerimientos de un DLL complejo Suerte |
La franja horaria es GMT +2. Ahora son las 00:05:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi