Question

Je me mêle de la façon dont le service Web RESTful en C # utilise ASP.Net 2.0 et ai géré (via une bibliothèque de classes, une référence à une dll produite par l'ancien et un ajustement de mon web.config) à extraire un format d'URI comme ceci:

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

Ce qui, de manière anodine, renvoie simplement l'entrée sous forme de texte avec le préfixe éclairant "Votre entrée était:"

J'avais l'impression que je pouvais obtenir que l'URI devienne encore plus simple:

http: // localhost / DevelopmentProject / testhandler / thisismyinput

et vous obtenez le même résultat, mais vous ne savez pas comment vous en débarrasser "? input ="

L'entrée dans la section httphandlers de mon Web.config est (espaces ajoutés afin que le code s'affiche):

< ajouter un verbe = " * " path = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

J'utilise IIS 5.1 sur la machine locale. Est-ce que cela va poser un problème?

Essentiellement, où est-ce que je me trompe?

Merci.

Était-ce utile?

La solution 3

Autres conseils

Une solution consiste à utiliser UrlRewriting pour réécrire l’URL selon vos besoins.

J'utilise http://urlrewriter.net/ pour faire toute ma réécriture, et vous pouvez configurer quelque chose comme: ceci dans votre scénario

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

Cela resterait " http: // localhost / DevelopmentProject / testhandler / thisismyinput " Dans la barre d’adresse de votre navigateur, procédez de la manière suivante: "http: // localhost / DevelopmentProject / testhandler /? input = thisismyinput"

.

Vous pouvez implémenter la réécriture d'URL, à l'aide de quelque chose comme URLRewriter.net . Cela vous permettrait d'utiliser la syntaxe que vous avez mentionnée.

Modifiez votre configuration à partir de:    < ajouter un verbe = " " chemin = " testhandler / " type = " HandlerLib.testhandler, HandlerLib " / > à:    < ajouter un verbe = " " path = " testhandler / * " type = " HandlerLib.testhandler, HandlerLib " / >

Vérifiez la valeur de Request.PathInfo dans la fonction ProcessRequest de votre gestionnaire. avec une URL du type http: // localhost / DevelopmentProject / testhandler / thisismyinput .

Si cela ne fonctionne pas, assurez-vous qu'IIS 5.1 achemine TOUTES les demandes vers aspnet_isapi.dll. (Bien que cela semble déjà être le cas) C’est la "Configuration ..." bouton > "Mappages d'applications" onglet dans votre répertoire virtuel dans IIS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top