ASP.NET MVC How-to use rotas quando o aplicativo é publicado como SubProject de um domínio?
-
03-07-2019 - |
Pergunta
Eu tenho um webapp que funciona perfeitamente quando depurado e testado localmente. No entanto, quando eu publicar o site para um ProductionServer o encaminhamento é confuso. Isso é porque ele é executado como um sub-projeto sobre o ProductionServer.
Testing: http://localhost:xxx/ Production: http://remotehost/webapp/
Como devo configuração de roteamento?
Esta é minha configuração de roteamento atual (principalmente padrão). O servidor exibe a ação do controlador padrão quando eu visitar http: // remotehost / webapp / . Mas quando eu codificar o controlador ( http: // remotehost / webapp / Projeto / isso não acontecer trabalho ...
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
Solução
Para mim parece que ele pode estar relacionado com a publicação no IIS 6. Há um artigo aqui sobre isso.
Para mim um problema semelhante foi resolvido adicionando um 'mapa Wildcard aplicação':
- No IIS, clique direito e escolha Propriedades para o diretório virtual em questão
- escolha guia diretório virtual
- escolha Configuração
- clique em Inserir
- digite o caminho para aspnet-isapi.dll (tipicamente c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll).
Outras dicas
A propósito, o encaminhamento parece estar funcionando no nível de aplicação. Não há necessidade de incomodar o seu domainname ou nomes de diretórios superiores.