Referência de objeto não definida em GetRouteData (System.Web.Routing)
-
23-08-2019 - |
Pergunta
Isso está me deixando louca. Eu tenho implementado o Web.Routing em um aplicativo Web Forms. O aplicativo funciona muito bem e, em seguida, inexplicavelmente (pelo menos no momento) a seguinte mensagem de erro é lançado:
Referência de objeto não definida para uma instância de um objecto. em System.Web.Routing.RouteCollection.GetRouteData (HttpContextBase httpContext) a System.Web.Routing.UrlRoutingModule.PostResolveRequestCache (HttpContextBase contexto) a System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache (Object remetente, EventArgs e) a System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () em System.Web.HttpApplication.ExecuteStep (IExecutionStep etapa, Boolean & completedSynchronously)
Este erro é intermitente e nenhuma quantidade de navegar ao redor do local recria o erro.
A minha interpretação do erro é que um pedido para o servidor está resultando em um evento PostResolveRequestCache com um nulo httpContext, mas eu não sei como isso é possível.
O problema é resolvido reiniciando o pool de aplicativos.
A aplicação está em execução no IIS6, por causa disso, eu adicionei um mapa de aplicativo curinga para aspnet_isapi.dll com "Verificar se o arquivo existe" desmarcada. O objectivo é permitir URLs amigáveis ??sem extensões de arquivo, estou no entanto considerando mudar isso como uma possível em torno do trabalho. O pensamento por trás disso é, que não é, possivelmente, um pedido a ser enviado para o servidor que está sendo pegou o módulo que não deve ser.
Meu implementação foi personalizado, mas segue as diretrizes gerais estabelecidas pelo Sr. Haack. Devido à natureza do erro, eu não tenho certeza se qualquer um dos meu código iria fornecer uma visão muito, mas estou obviamente disposto a fazê-lo a pedido.
Qualquer ajuda seria muito apreciada.
Solução
Como adicionar extensões de arquivo personalizado não foi ideal, mas evitou mais mensagens de erro.
Outras dicas
Pode estar relacionado com a coleção de rota que está sendo modificado. Consulte outra questão .