J'avais l'intention d'utiliser le routage d'URL pour une application Web Forms. Mais, après avoir lu quelques posts , je ne sais pas si c'est une approche facile.
Est-il préférable d'utiliser le module de réécriture d'URL pour les formulaires Web? Mais, c'est uniquement pour IIS7. Au départ, il y avait un certain buzz selon lequel le routage d'URL était totalement découplé d'Asp.Net MVC et pouvait être utilisé pour les formulaires Web.
J'adorerais entendre des suggestions ..
Il y a un excellent article ici sur les différences entre les deux d'un membre de l'équipe IIS.
Une mise en garde que je conseillerais est que pour les formulaires Web, vous devez être prudent lorsque vous utilisez le routage. J'ai écrit un exemple d'implémentation de la façon dont vous utiliseriez routage avec WebForms qui répond à ces préoccupations et, espérons-le, aidera à répondre à votre question.
C'est le meilleur article que j'ai trouvé sur ce sujet: Réécriture d'URL IIS et routage ASP.NET par Ruslan Yakushev.
Lorsqu'un client fait une demande au serveur Web pour une URL particulière, le composant de réécriture d'URL analyse l'URL demandée et la change en une autre URL différente sur le même serveur. Le composant de réécriture d'URL s'exécute très tôt dans le pipeline de traitement des demandes, il est donc en mesure de modifier l'URL demandée avant que le serveur Web ne décide quel gestionnaire utiliser pour traiter la demande.
Le routage ASP.NET est implémenté en tant que module de code managé qui se connecte au pipeline de traitement de demande IIS à l'étape Resolve Cache (événement PostResolveRequestCache) et à l'étape Map Handler (PostMapRequestHandler). ASP. Le routage NET est configuré pour s'exécuter pour toutes les demandes adressées à l'application Web.
Différences entre la réécriture d'URL et le routage ASP.NET:
En plus de ces différences conceptuelles, il existe des différences fonctionnelles entre la réécriture d'URL IIS et le routage ASP.NET:
Voulez-vous que les URL formatées soient une fabrique de pages de génération?
ou voulez-vous faire disparaître le .aspx?
la réécriture, c'est pour faire disparaître le .aspx, ou juste pour ranger l'url.
Le routage, c'est pour regarder une requête et déterminer quel objet doit la gérer. Ils semblent similaires, phil haack a quelques bons articles sur le sujet.
dans iis6, isapiRewrite, est très bon
J'ai récemment écrit mon propre système de réécriture pour améliorer l'apparence des URL sur mes sites. Fondamentalement, vous devrez écrire votre propre IHttpModule et l'ajouter à votre web.config pour intercepter les demandes entrantes. Vous pouvez ensuite utiliser HttpContext.Current.RewritePath pour modifier ce que vous pointez.
Vous voudrez également configurer votre site pour tilisez le aspnet_isapi pour tout .
Vous découvrirez de nombreux petits problèmes en cours de route, comme essayer de travailler avec des pages qui utilisent des "queues" (comme pour PageMethods), ou le cheminement des éléments de page et des formulaires de publication, mais vous les traverserez.
Si vous êtes intéressé, je peux poster un lien vers le code et vous pouvez le vérifier. J'ai déjà résolu un grand nombre de problèmes afin que vous puissiez le lire au fur et à mesure. Je suis sûr qu'il y a aussi beaucoup d'autres personnes qui ont fait cela et qui pourraient aussi être de bonnes ressources.
Vous voudrez peut-être consulter mon réponse à cette question: ASP.NET - Construire votre propre système de routage . J'inclus de bonnes références pour vous aider à créer votre propre système de routage en utilisant la méthode de réécriture d'URL ou le nouveau moteur de routage que vous pouvez utiliser, issu du projet ASP.NET MVC.
Le projet Dynamic Data disponible avec .Net 3.5 SP1 présente un bon exemple d'implémentation de routage d'URL.
Pour la réécriture d'URL sur IIS, IIRF fonctionne dans IIS5, 6, 7. Gratuit. Facile. Vite. Open source. Prise en charge des expressions régulières.