2010-03-30 12 views
19

Eventuali duplicati:
How to configure IIS to serve my 404 response with my custom content?ASP.NET MVC: come servire il contenuto restituendo il codice di stato 404?

Vorrei servire un'user friendly pagina "non trovato" nella mia applicazione ASP.NET MVC, fornendo un codice di stato 404. (basato su this answer)

Ho già il meccanismo su come rilevare un percorso non valido e la pagina 404 personalizzata è servita dall'azione.

mio attuale implementazione di Handle404:

public ActionResult Handle404() 
    { 
     Response.StatusCode = 404; 
     return View("NotFound"); 
    } 

Attualmente, IIS serve la pagina come 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable. (pagina IIS standard, non il mio utente contenuti friendly)

Come posso includere il codice di stato 404 in il risultato servito dall'azione Handle404 mentre continua a servire il contenuto?

risposta

14

Impostazione

Response.TrySkipIisCustomErrors = true; 

ha fatto il trucco.

0

Stai già facendo la cosa giusta. Puoi dare un'occhiata a Fiddler per confermare questo.

Tuttavia, non vi è alcuna garanzia che un browser rispetti i contenuti. Wikipedia notes:

Internet Explorer (prima di Internet Explorer 7), tuttavia, non visualizzerà le pagine personalizzate a meno che non sono più grandi di 512 byte, optando invece per visualizzare una pagina di errore "amichevole". Google Chrome include funzionalità simili, in cui la 404 viene sostituita con suggerimenti alternativi generati dagli algoritmi di Google, se la dimensione della pagina è inferiore a 512 byte.

Alcune prove ed errori e il massaggio della visualizzazione potrebbero essere necessari per ottenere una pagina che vari browser effettivamente selezioneranno.

+1

Si prega di notare che la pagina che sto vedendo proviene da IIS, non dal mio browser web – Marek

Problemi correlati