Sto provando a impostare una pagina di errore 404 personalizzata per la mia applicazione web. Il problema è che questa applicazione verrà distribuita in un numero di ambienti diversi. A volte sarà in una directory virtuale ea volte no.È possibile utilizzare un percorso relativo quando si imposta una pagina di errore personalizzata in IIS7?
Ho la pagina di errore in una directory chiamata ErrorPages e hanno istituito la mia configurazione in questo modo:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404"/>
<error statusCode="404" path="/VirtualDir/ErrorPages/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
Il guaio è quando schiero questo alla radice di un sito web, la parte /VirtualDir
ha bisogno di essere rimosso. Se lo rimuovo prima della distribuzione, devo aggiungerlo nuovamente quando si esegue la distribuzione in una directory virtuale. C'è un modo in cui posso impostare il percorso per essere relativo alla directory virtuale e non al sito?
Ho provato con un ~
, ma questo non funziona nemmeno, in questo modo:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404"/>
<error statusCode="404" path="~/ErrorPages/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
sembra che la risposta breve è: no, non è possibile utilizzare un percorso relativo quando si imposta una pagina di errore personalizzata in IIS7! –
Martin, ti credo, ma hai una citazione? – Michael
@ Michael [questo collegamento] (http://www.iis.net/configreference/system.webserver/httperrors/error#005) afferma che l'URL deve essere un URL relativo al server, non un URL relativo all'applicazione quando si utilizza 'responseMode = "ExecuteURL" '. – WolfyUK