Por vezes recebemos o error "Resource not found" numa aplicação .NET, mas a mensagem não diz que ficheiro é que não encontra. Neste artigo explica-se como descobrir que recurso em falta é que está a causar o problema.
Recebi este erro depois de instalar um hot fix para o SharePoint, que fez com o que o ambiente deixasse de funcionar. Consegui recuperar o SharePoint e os sites para um estado de quase funcionamento, mas depois apareceu-me este erro:
Server Error in '/' Application.
The resource cannot be found.
Na mensagem de erro apenas diz que um recurso está em falta, mas não diz qual. Configurei o web.config
para mostrar todas as mensagens de erro (certifiquem-se que não fazem isto num ambiente de produção senão os visitantes receberão mensagens de erro detalhadas):
- Actualizar o elemento
customErrors
, pondo o atributomode
emOff
.
<customErrors mode="Off" />
- Actualizar o elemento
SafeMode
emSharePoint
, mudandoCallStack
eAllowPageLevelTrace
paratrue
.
<SafeMode MaxControls="200" CallStack="true" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="true">
- Actualizar o elemento
trace
, mudandoenabled
paratrue
.
<trace enabled="true" />
- Actualizar o elemento
compilation
, mudandodebug
paratrue
.
<compilation batch="false" debug="true">
Mesmo com estas definições não mostra directamente na mensagem de erro que recurso é que não encontra.
Para ver o que causa o erro é necessário ver o código fonte HTML da página. Nele está um comentário HTML que dá informação suficiente para ajudar a encontrar o recurso em falta.
No meu caso era:
Muitas vezes diz exactamente que ficheiro é que falta, mas desta vez não. Apesar disso, através da mensagem de erro consegui descobrir onde é que tinha que procurar.
No meu caso, resolvi o problema copiando a 12 hive de outro ambiente que estava a funcionar do mesmo projecto.