10
votes

Briser ma tête pour obtenir un routage URL dans l'environnement d'hébergement IIS 7: ASP.NET

J'essaie d'implémenter l'acheminement d'URL ASP.NET à l'aide du système System.Web.Web.Web.Web. / STRORT>. Et cela semble bien fonctionner sur mon localhost cependant quand je vais vivre, je reçois une erreur 404 d'IIS 7 (fichier non trouvé). FYI L'hébergement utilise Windows Server 2008 IIS7.

Je pense que cela fait une différence dans la gestion du mécanisme de routage. Mais je ne suis pas capable de comprendre ce qui se passe exactement. Vous trouverez ci-dessous les réglages et les changements que j'ai faits jusqu'à présent pour le faire fonctionner et donner un crédit à moi-même, cela fonctionne tout à fait bien localement. P>

WEB.CONFIG Réglages strong> de
P>

puis j'ai une section System.WebServer qui possède le balisage suivant P>

ProductId = (int)HttpContext.Current.Items["Product"];


1 commentaires

Avez-vous des règles de réécriture mises en œuvre?


4 Réponses :


4
votes

J'ai suivi cet article: Comment: utiliser le routage avec des formulaires Web

Avant de trouver J'avais des problèmes sur mon hôte partagé et aucun local. C'était mon web.config.

Mon hôte utilisait IIS 7 avec un pipeline intégré, il manquait ceci: xxx

édition: selon vos paramètres et code, la seule chose qui reste est de vérifier si vous avez la DLL de routage définie dans web.config et également déployée dans votre répertoire bin: xxx


4 commentaires

Salut, merci pour la réponse. Pouvez-vous dire quels changements avez apportés à votre web.config. Ce serait vraiment utile.


J'ai ajouté ce qui corrige mon problème. L'article est très clair sur la manière de configurer le routage en fonction des paramètres d'hôte.


Salut merci encore pour la réponse. J'ai tout dans le web.config et j'ai examiné l'article que vous avez suggéré. Comment j'ai tous les paramètres nécessaires dans web.config. Je ne suis vraiment pas capable de comprendre pourquoi ça fait ça. Je ne sais pas pourquoi IIS 7 est tellement compliqué pour obtenir des choses simples comme celle-ci comme un routage ou une réécriture d'URL est très fréquente ces jours-ci.


Merci, manqueuse de routage URL manquait - m'a sauvé un ami mal de tête



1
votes

Juste pour informer ce qui a finalement été ma solution ... sur l'IIS7 change le mode pipeline à intégré et j'ai ajouté des lignes sur le web.config du lien ci-dessus ... http://msdn.microsoft.com/en-us/library/cc668202. ASPX

bonne chance.


0 commentaires

2
votes

Je ne sais pas si vous pouviez déterminer ce que le problème était ... Toutefois, si vous recherchez toujours une solution, vous pouvez essayer ce qui suit. J'ai dû faire face à la même situation de la même situation et je l'ai eu pour travailler en utilisant des règles de réécriture dans Web config pour lesquelles vous n'aurez pas besoin de mécanisme de routage. Donc, je vous encourage tout d'abord à supprimer tout paramètre de routage que vous pouvez avoir et le code du fichier global.asax aussi.

Dans la section, vous pouvez ajouter des règles de réécriture comme suit P>

<rewrite>
    <rewriteMaps>
        <rewriteMap name="map1" defaultValue="(.+)"/>
    </rewriteMaps>
    <rules>
        <rule name="Rewrite rule1 for map1">
        <match url="product/(.+)/(.+)"/>
        <conditions>
            <add input="{map1:{REQUEST_URI}}" pattern="(.+)"/>
        </conditions>
        <action type="Rewrite" url="productdetail.aspx?Product={R:1}" appendQueryString="false" redirectType="Permanent"/>
        </rule>
    </rules>
  </rewrite>


2 commentaires

Yup je pensais que le problème est de retour longtemps et l'a corrigé à l'aide de cartes de réécriture elle-même ... De toute façon, merci pour votre réponse


User153410, j'ai le même problème. Pouvez-vous suggérer comment avez-vous réparer cela?



3
votes

Essayez ceci dans You Web.config. Travaillé pour moi.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>


1 commentaires

Après avoir téléchargé le formulaire de site Web local Dev sur Webhost, obtenait 404 sur routage. RunallManagedModulesForêtsForêts a résolu le problème.