Domanda

Ho impostato la pagina del gestore 404 in web.config, ma funziona SOLO quando l'estensione dell'URL è .aspx (o altro che è gestito da ASP.NET). So di poter impostare una pagina HTML statica nelle opzioni del sito Web, ma voglio avere una pagina. Esistono opzioni per assegnare la pagina del gestore ASPX per tutte le estensioni di richiesta in IIS?

È stato utile?

Soluzione

La domanda diretta era se ci fossero o meno opzioni per assegnare il gestore ASPX a tutte le estensioni di richiesta: Sì, c'è. Discuterò come farlo a breve.

In primo luogo, penso che il "nascosto" domanda - la risposta che vuoi davvero - è se c'è un modo per reindirizzare tutti gli errori 404 per pagine diverse da ASPX, ASMX, ecc. Sì, c'è, e questa è la scelta migliore se risolverà il problema che stai riscontrando.

Per reindirizzare tutti i 404 in IIS 6, fai clic con il pulsante destro del mouse sulla radice dell'applicazione web (che si tratti del proprio sito o di una directory virtuale nel sito principale) e scegli " Proprietà. " Da lì, scegli " Errori personalizzati " scheda. Trova 404 nell'elenco e modificalo nel reindirizzamento desiderato.

Ora, se ciò non bastasse - e spero davvero che lo sia - sì, puoi eseguire ogni pagina tramite il gestore ASPX. Tuttavia, ciò comporta un costo piuttosto elevato in termini di efficienza: il servizio di HTML / immagine non elaborato è notevolmente più veloce di qualsiasi cosa dinamica.

Per fare ciò, fai clic con il pulsante destro del mouse sulla radice dell'applicazione web e scegli " Proprietà. " Scegli la " Directory Home " scheda. Fai clic su " Configurazione; " verrà visualizzata una nuova finestra. Copia il percorso da una delle pagine ASP.NET e poi usalo per una mappa di applicazioni jolly.

Ricorda, ancora una volta, questa è la risposta sbagliata il più delle volte. Avrà un impatto negativo sulle tue prestazioni ed è l'equivalente dell'uso di una motosega per scolpire un tacchino. Consiglio vivamente la prima opzione rispetto a questa, se funzionerà per te.

Altri suggerimenti

Per informazioni:

Questa è una delle tante cose interessanti che porta IIS7: tutte le pagine sono instradate attraverso il gestore in modo tale che tu possa fare 404s personalizzati e - utilmente - sicurezza a livello di directory e file per qualsiasi file (basato sulla stessa roba web.config dei file asp.net precedenti a IIS7).

Quindi teoricamente "usa II7" è una risposta (sarà la "risposta in tempo"), ma ovviamente non è terribilmente pratica se non stai ospitando / ospitato su W2k8 (o superiore).

web.config può impostare pagine di errori solo per le pagine controllate dal suo sito web. Se hai altre pagine al di fuori del campo di applicazione dell'applicazione ASP.Net, hai impostato la gestione per esse in IIS. C'è un'opzione lì dentro per configurare la pagina 404 in cui puoi puntarla alla tua pagina personalizzata.

L'unica altra cosa a cui riesco a pensare è il passaggio di TUTTE le estensioni ad asp.net.

In questo modo tutti i tipi di file vengono elaborati da asp.net e la tua pagina di errore personalizzata funzionerà.

Nella configurazione dell'applicazione IIS, puoi impostare un mapping jolly (". * ") su C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll

  1. Puoi impostare la mappatura dei caratteri jolly in IIS (Configurazione applicazione / Mappature / Mappature caratteri jolly / - imposta semplicemente aspnet_isapi.dll come eseguibile e deseleziona la casella Verifica l'esistenza del file) che instraderà tutte le richieste in arrivo alla tua app - così puoi controllare il comportamento direttamente da esso.

  2. Non è necessario configurare la pagina statica nelle impostazioni dell'applicazione IIS. Ehi, dovresti essere in grado di impostare un URL valido (ad es. /Error_handler.aspx) dalla tua app che verrà utilizzato come pagina di destinazione in caso di errore specifico del server.

In IIS è possibile impostare un errore personalizzato per errori 404 e indirizzarlo a un URL nelle proprietà del sito.

Mostra un HTML statico per impostazione predefinita C: \ Windows \ Help \ iisHelp \ common \ 404b.htm

Puoi cambiarlo in un URL relativo sul tuo sito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top