ASP.NET MVC Comment utiliser les itinéraires lorsque l'application est publiée en tant que sous-projet d'un domaine?

StackOverflow https://stackoverflow.com/questions/802253

  •  03-07-2019
  •  | 
  •  

Question

J'ai une application Web qui fonctionne parfaitement lorsqu'elle est déboguée et testée localement. Cependant, lorsque je publie le site sur un serveur de productions, le routage est perturbé. En effet, il s’exécute en tant que sous-projet sur le serveur de production.

Testing:     http://localhost:xxx/
Production:  http://remotehost/webapp/

Comment configurer le routage?

Ceci est ma configuration de routage actuelle (principalement par défaut). Le serveur affiche l'action par défaut du contrôleur lorsque je visite http: // remotehost / webapp / . Mais lorsque je code le contrôleur ( http: // remotehost / webapp / Project / , il ne le fait pas. travailler ...

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

    routes.MapRoute("ProjectsByCategory", "Project/Category/{id}", _
                    New With {.controller = "Project", .action = "ListByCategory", .id = ""}, _
                    New With {.id = "^[0-9]+"})


    routes.MapRoute( _
        "Default", _
        "{controller}/{action}/{id}", _
        New With {.controller = "Project", .action = "Index", .id = ""} _
    )

End Sub
Était-ce utile?

La solution

Pour moi, cela semble lié à la publication sur iis 6. Il existe un article ici à ce sujet.

Pour moi, un problème similaire a été résolu en ajoutant une "carte d'application générique":

  • Dans IIS, cliquez avec le bouton droit de la souris et choisissez Propriétés pour le répertoire virtuel en question
  • choisissez l'onglet du répertoire virtuel
  • choisissez la configuration
  • cliquez sur Insérer
  • entrez le chemin d'accès à aspnet-isapi.dll (généralement c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll).

Autres conseils

Soit dit en passant, le routage semble fonctionner au niveau de l'application. Pas besoin de déranger votre nom de domaine ou des noms de répertoires plus élevés.

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