ASP.NET MVC Come utilizzare le route quando l'applicazione viene pubblicata come sottoprogetto di un dominio?
-
03-07-2019 - |
Domanda
Ho una webapp che funziona perfettamente quando viene eseguita il debug e testata localmente. Tuttavia, quando pubblico il sito su un server di produzione, il routing è incasinato. Questo perché funziona come sottoprogetto sul server di produzione.
Testing: http://localhost:xxx/ Production: http://remotehost/webapp/
Come devo configurare il routing?
Questa è la mia attuale configurazione di routing (principalmente predefinita). Il server visualizza l'azione del controller predefinita quando visito http: // remotehost / webapp / . Ma quando codifico il controller ( http: // remotehost / webapp / Project / non funziona il lavoro ...
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
Soluzione
Per me sembra che potrebbe essere correlato alla pubblicazione su iOS 6. C'è un articolo qui a riguardo.
Per me un problema simile è stato risolto aggiungendo una 'Mappa delle applicazioni jolly':
- In IIS, fai clic con il pulsante destro del mouse e scegli Proprietà per la directory virtuale in questione
- seleziona la scheda Directory virtuale
- scegli Configurazione
- fai clic su Inserisci
- inserisci il percorso di aspnet-isapi.dll (in genere c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll).
Altri suggerimenti
A proposito, il routing sembra funzionare a livello di applicazione. Non è necessario disturbare il tuo nome di dominio o nomi di directory superiori.