ASP.NET MVC How-to-Routen verwenden, wenn die Anwendung als Teilprojekt einer Domain veröffentlicht wird?
-
03-07-2019 - |
Frage
ich habe ein Webapp, die perfekt funktioniert, wenn sie lokal gedebuggt und getestet. Allerdings, wenn ich die Website zu einem Productionserver veröffentlichen das Routing durcheinander. Dies liegt daran, es als ein Teilprojekt auf dem Productionserver ausgeführt wird.
Testing: http://localhost:xxx/ Production: http://remotehost/webapp/
Wie soll ich ein Setup-Routing?
Dies ist mein aktuelles Routing-Setup (meist Standard). Der Server zeigt die Standard-Controller-Aktion, wenn ich unter http: // entfernter_host / webapp / . Aber wenn ich hart Code die Steuerung ( http: // entfernter_host / webapp / Projekt / es nicht der Fall ist Arbeit ...
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
Lösung
Für mich klingt es wie es zu veröffentlichen auf iis 6. könnte im Zusammenhang Es ist ein Artikel hier darüber.
Für mich ist ein ähnliches Problem durch das Hinzufügen einer 'Wildcard Anwendung map' aufgelöst wurde:
- In IIS rechten Maustaste und Eigenschaften für das virtuelle Verzeichnis in Frage wählen
- Wählen Sie Registerkarte Virtuelles Verzeichnis
- Wählen Sie Konfiguration
- Klicken Sie auf Einfügen
- Geben Sie den Pfad zu aspnet-Isapi.dll. (In der Regel c: \ windows \ microsoft.net \ Framework \ v2.0.50727 \ aspnet_isapi.dll)
Andere Tipps
Übrigens scheint das Routing auf Anwendungsebene zu arbeiten. Keine Notwendigkeit, Ihre Domain Name oder höher Verzeichnisnamen stören.