Pregunta

Estoy tratando de usar jQuery para hacer algunas llamadas de Ajax, pero debido a que tengo el mapeo de comodines (a .NET) en IIS 6 activado, no parece funcionar. Deshabilitar el mapeo hace que todo funcione mágicamente.

He puesto el atributo del método web en los métodos tanto en una página .aspx como en un servicio web .asmx, pero ninguno funciona. Aquí está la URL de muestra que estoy usando para las llamadas AJAX:

localhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

Creo que debe ser algo con la forma en que .NET está interpretando las URL, pero no estoy completamente seguro de por qué. Más importante aún, ¡no estoy seguro de cómo solucionarlo, aparte de deshabilitar el mapeo de comodines! ¿¿¿Hay alguna otra manera???

ACTUALIZAR

El CMS que estoy usando (Kentico) realiza un enrutamiento de URL, pero incluso si me salto el enrutamiento en el código global.asax.cs, todavía obtengo un 404.
¡Gracias por adelantado!

¿Fue útil?

Solución

Con el mapeo de comodín en IIS ejecutará la solicitud inicial a través del controlador de comodines primero. Esto se hará antes de cualquier reescritura de URL (o enrutamiento de URL) por su CMS.

Creo que es por eso que obtienes 404.

También puede tratar de deshabilitar la casilla de verificación "Verificar el archivo" en la asignación de comodines para que se adapte al escenario cuando la URL real se reescribirá más tarde a otra cosa.

Otros consejos

Esta no es una respuesta completa, pero espero que te indique en la dirección de una solución.

¿Ha intentado acceder a la URL directamente en un navegador y usar algunos puntos de interrupción bien colocados para rastrear el problema?

Si está obteniendo 404, parece que sus reglas para el enrutamiento no funcionan.

Actualizaré esto si puedes dar un poco más de información sobre el comportamiento que estás viendo

ACTUALIZAR

Creo que lo que podría estar sucediendo es esto:

Está proporcionando una asignación separada para sus archivos con extensiones (en estos casos .aspx y .asmx):

localhost/userChecker.aspx/checkifuserEmailsexists

localhost/userChecker.asMX/checkifuserEmailSexists

Estas asignaciones se usan cuando apaga las asignaciones de comodines, y el '/checkifuserEmailsexists' se maneja o se ignora. Cuando enciende las asignaciones de comodines, su enrutamiento no informa a su aplicación cómo 'enrutar' correctamente.

Si eliminó las extensiones (con los mapeos comodines activados) ¿Funciona las siguientes?

LocalHost/UserChecker/checkifuseMailSexists

Agregue las URL apropiadas a la lista de exclusión: use la configuración "URL excluidas" en la pestaña Manager-> Configuración. (Documentación de ayuda básica)

Sugiero verificar la URL fuera de su marco CMS; El problema tiene que ser con la enrutamiento de URL. No hay cómo funcionara sin el mapeo de comodines.

Preguntas para entender: 1. ¿Tiene su CMS ejecutándose al intentarlo sin mapeo de comodines? 2. ¿Cómo interactúa este sistema CMS con IIS? IASPI DLL? o manejadores/módulos HTTP?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top