Pregunta

Simplemente estoy entrometiendo las formas del servicio web RESTful en C # usando ASP.Net 2.0 y he administrado (a través de una biblioteca de clases, una referencia a dll producida por el primero y algunos ajustes de mi web.config) para persuadir a un formato URI como tal:

http: // localhost / DevelopmentProject / testhandler /? input = thisismyinput

Lo que no tiene nada que ver solo devuelve la entrada como parte del texto con el prefijo ilustrado " Tu entrada fue: "

Tenía la impresión de que podría conseguir que la URI se sintiera más segura de algo más como:

http: // localhost / DevelopmentProject / testhandler / thisismyinput

y tiene el mismo resultado, pero no tienes idea de cómo deshacerte del molesto "? input = "

La entrada a la sección httphandlers de mi web.config es (espacios agregados para que aparezca el código):

< añadir verbo = " * " ruta = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

Estoy ejecutando IIS 5.1 en la máquina local, ¿esto presentará algún problema?

Esencialmente, ¿a dónde me voy mal?

Gracias.

¿Fue útil?

Solución 3

Un poco engañado.

Prueba:

Mi artículo sobre cómo lo conseguí

Otros consejos

Una solución es usar UrlRewriting para volver a escribir la URL a lo que necesitas.

Utilizo http://urlrewriter.net/ para hacer toda mi reescritura, y podrías configurar algo como esto en tu escenario

<rewriter>
   <rewrite 
     url="DevelopmentProject/testhandler/([\w]+)" 
     to="DevelopmentProject/testhandler/?input=$1" />
</rewriter>

Esto permanecería " http: // localhost / DevelopmentProject / testhandler / thisismyinput " en la barra de direcciones de su navegador, pero procese como " http: // localhost / DevelopmentProject / testhandler /? input = thisismyinput "

Puede implementar la reescritura de URL, usando algo como URLRewriter.net Eso te permitiría usar la sintaxis que mencionaste.

Cambie su configuración de:    < añadir verbo = " " ruta = " testhandler / " type = " HandlerLib.testhandler, HandlerLib " / > a:    < añadir verbo = " " ruta = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

Compruebe el valor de Request.PathInfo en la función ProcessRequest de su manejador con una URL como http: // localhost / DevelopmentProject / testhandler / thisismyinput .

Si eso no lo hace, asegúrese de que IIS 5.1 esté enrutando TODAS las solicitudes a aspnet_isapi.dll. (Aunque, parece que ya está) Esta es la " Configuración ... " botón > " Asignaciones de aplicaciones " pestaña en tu directorio virtual en IIS.

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