2010-12-13 19 views
15

J'utilise le routage asp.net 4 dans l'un de nos nouveaux produits et il fonctionne très bien dans l'environnement de développement (serveur web Visual Studio). mais quand je l'ai déplacé vers iis à distance à des fins de test, il ne fonctionne pas. tout ce que je reçois est la page d'erreur 404. J'ai essayé d'ajouter ce qui suit au web.config et toujours obtenir l'erreur.asp.net 4 routage ne fonctionne pas dans iis 7

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true">  
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </modules> 
<validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 

des idées comment trier ce problème ?.

+0

Si vous activez la surveillance de l'intégrité pour vous connecter au journal des événements (ce que je crois faire par défaut, il vous suffit de l'activer), certaines de ces erreurs de structure interne sont détectées. –

+0

merci, mais n'a pas aidé – Aneef

Répondre

35

je suis la solution pour ce ... ajoutez le code ci-dessous dans ur web.config .. et Ne pas oublier d'ajouter runAllManagedModulesForAllRequests = "true" dans votre module ..

<system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="UrlRoutingModule"/> 
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     </modules> 
     <handlers> 
      <add 
      name="UrlRoutingHandler" 
      preCondition="integratedMode" 
      verb="*" path="UrlRouting.axd" 
      type="System.Web.HttpForbiddenHandler, System.Web, 
       Version=2.0.0.0, Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a"/> 
     </handlers> 
     </system.webServer> 
+3

Je ne suis pas sûr que tout ce code est nécessaire, mon application ASP.Net 4.0 webforms seulement nécessaire runAllManagedModulesForAllRequests = "true" en ajoutant à pour que cela fonctionne - les autres changements ne sont pas nécessaires. – Richard

+0

Merci. Cela a beaucoup aidé. Je suis d'accord avec @Richard. –

+5

'' est ce qui a fonctionné pour moi. J'ai passé 3 heures à essayer de comprendre cela. –

2

Remarque : Vous devez définir le pool d'applications au pool d'applications Asp.net 4.0, car le routage ne fonctionne pas avec le pool d'applications Asp.net 4.0 Classic.