2008-12-03 16 views
1

J'essaie de créer une application ASP.NET très simple qui présente des informations extraites d'une base de données basée sur l'URL, de la même manière qu'un wiki, mais dans Dans ce cas, le site est en lecture seule. Un exemple d'une URL que je voudrais serait:Réécriture d'URL ASP.NET pour une requête DB à partir d'un contenu URL sans extension

http://www.foo.com/bar 

L'application utiliserait alors « bar » comme paramètre de requête SQL pour afficher des informations de la base de données correspondant à « bar ». J'ai examiné plusieurs options de réécriture d'URL pour IIS6 (et ce serait sur un serveur dédié), mais je ne sais toujours pas lequel utiliser pour cette application.

Pour clarifier peut-être, j'ai seulement besoin d'exécuter le site à partir d'un seul fichier default.aspx, mais je veux que cela fonctionne comme décrit ci-dessus. La logique globale du site sera très simple. Je souhaite que quelqu'un avec plus d'expérience dans ce domaine puisse m'aider - je cherche la solution la plus simple qui répondra à ce scénario.

Répondre

2

IIS6 envoie uniquement les demandes au moteur asp.net si cette extension a été enregistrée. Par défaut, les extensions enregistrées sont aspx ascx asmx etc ...

Si vous ne pouvez pas baser votre requête de base de données sur un paramètre de chaîne de requête (ex: foo.com/default.aspx?query=bar), alors vous pouvez le faire le mieux possible IIS6 est un mappage générique. Fondamentalement, cela signifie que chaque demande sera dirigée vers asp.net (y compris les scripts et les styles d'images). De toute évidence, cela va dégrader les performances. Pour activer le mappage de caractères génériques, cliquez avec le bouton droit de la souris sur votre site dans le gestionnaire IIS et allez dans Propriétés -> Répertoire de base -> Configuration -> Mappages en bas du clic et insérez le chemin de la DLL asp.net copiez-le depuis l'extension aspx ci-dessus) et décochez la case 'Vérifier que ce fichier existe'.

Après avoir effectué les changements que vous serez en mesure de demander foo.com/bar

(une autre méthode pourrait être de faire une demande à foo.com/default.aspx/bar)

0

Juste pour l'enregistrement, IIS URL Rewrite 2 prend en charge cela, vous pouvez installer les exemples d'extensibilité qui incluent un fournisseur DB. Fonctionne sur IIS 7+ uniquement.

http://www.iis.net/download/urlrewrite http://code.msdn.microsoft.com/rewriteextensibility