Domanda

Sto solo immischiando nei modi del servizio web RESTful in C # usando ASP.Net 2.0 e sono riuscito (tramite una libreria di classi, un riferimento alla DLL prodotta dal primo e qualche aggiustamento del mio web.config) a persuadere un formato URI in questo modo:

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

Il che inequivocabilmente restituisce l'input come un pezzo di testo con il prefisso illuminante "Il tuo input era: "

Avevo l'impressione di riuscire a rendere l'URI ulteriormente attenuato a qualcosa di più sulla falsariga di:

http: // localhost / DevelopmentProject / testhandler / thisismyinput

e hanno lo stesso risultato ma non ho idea di come sbarazzarsi del fastidioso "? input = "

La voce nella sezione httphandlers del mio web.config è (spazi aggiunti in modo da visualizzare il codice):

< aggiungi verbo = " * " path = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

Sto eseguendo IIS 5.1 sul computer locale, questo introdurrà un problema?

Essenzialmente dove sbaglio?

Grazie.

È stato utile?

Soluzione 3

Ho un po 'tradito.

Prova:

Il mio articolo su come l'ho aggirato

Altri suggerimenti

Una soluzione è utilizzare UrlRewriting per riscrivere l'Url in base alle proprie esigenze.

Uso http://urlrewriter.net/ per eseguire tutta la mia riscrittura e potresti impostare qualcosa di simile questo nel tuo scenario

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

Questo rimarrebbe " http: // localhost / DevelopmentProject / testhandler / thisismyinput " nella barra degli indirizzi del browser, ma elabora come " http: // localhost / DevelopmentProject / testhandler /? input = thisismyinput "

Potresti implementare la riscrittura degli URL, usando qualcosa come URLRewriter.net Ciò ti consentirebbe di utilizzare la sintassi che hai citato.

Cambia la tua configurazione da:    & Lt; aggiungi verbo = " " path = " testhandler / " type = " HandlerLib.testhandler, HandlerLib " / > a:    & Lt; aggiungi verbo = " " path = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

Controlla il valore di Request.PathInfo nella funzione ProcessRequest del gestore con un URL come http: // localhost / DevelopmentProject / testhandler / thisismyinput .

In caso contrario, assicurarsi che IIS 5.1 instradi TUTTE le richieste a aspnet_isapi.dll. (Anche se sembra che lo sia già) Questa è la " Configurazione ... " pulsante > " Mapping app " scheda nella directory virtuale in IIS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top