Question

Je suis en train de faire un travail avec Web.Routing, l'utiliser pour avoir amical urls et agréable repos comme les interfaces vers un site qui est essentiellement rendu par un seul IHttpHandler. Il n'y a pas webforms, le gestionnaire génère tout le html / JSON et l'écrit dans le cadre de la demande de processus.

Cela fonctionne bien pour des choses comme / Sites / Comptabilité par exemple, mais je ne peux pas le faire fonctionner pour la racine du site, à savoir « /'.

Je l'ai essayé l'enregistrement d'un itinéraire avec une chaîne vide, avec « default.aspx » (ce qui est le fichier ASPX vide que je garde dans mon dossier racine à jouer agréable avec cassini et iis). Je mis RouteExistingFiles false explicitement, mais tout ce que je fais quand frapper l'URL racine il ouvre encore default.axpx, qui n'a pas de code hérite de, et contient une simple balise h1 pour montrer que je l'ai frappé il.

Je ne veux pas changer le fichier par défaut pour rediriger vers un itinéraire souhaité, je veux juste l'équivalent d'une route « par défaut » qui est appliqué en l'absence d'autres voies se trouvent, similaire à MVC.

Pour référence, la version précédente du site n'a pas utilisé Web.Routing, mais il avait un gestionnaire référencé dans le web.config qui était parfaitement capable d'intercepter les demandes de la racine ou default.aspx.

Caractéristiques: ASP.NET 3.5SP1, C #, pas WebForms, MVC ou openrasta. vieux IHttpHandlers plaine.

Était-ce utile?

La solution

Correction mon problème: le problème est le serveur web intégré, Cassini ou une telle. Il semble qu'il ne joue pas bien avec le routage, et par défaut il suffit de retourner le fichier default.aspx ou, si elle est manquante, afficher une liste de répertoires.

Utilisation de IIS avec un répertoire virtuel fonctionne très bien, mais est ennuyeux (frustre les partageurs de code, car ils ont besoin pour créer de nouveaux répertoires virtuels quand ils ouvrent mon application et pollue mon propre instance IIS. Bah. Probablement que je vais faire pour le moment cependant, ou configurer une nouvelle application manuellement afin que je puisse utiliser le domaine hôte seul chemin comme ce qui existera en direct.

Une autre solution consiste à utiliser la version mise à jour de Cassini, vu

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