2013-09-07 11 views
5

Questi sono i codici nel web.config:Come reindirizzare tutti gli URL httpErrors all'URL personalizzato?

<system.web> 
    <customErrors mode="Off" > 
    </customErrors> 
</system.web> 
<system.webServer> 
    <httpErrors errorMode="Custom" existingResponse="Replace"> 
    <clear /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" /> 
    <error statusCode="500" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" /> 
    </httpErrors> 
</system.webServer> 

Le impostazioni di cui sopra saranno reindirizzare httpError di 404 e 500 solo.

Ma invece di aggiungere manualmente tutto il codice di errore di 400, 401, 403 .... ecc..ecc ...

possiamo solo impostare reindirizzare tutti gli errori allo stesso URL senza digitare tutto il codice di errore?

<error statusCode="400" ..... 
<error statusCode="401" ..... 
<error statusCode="403" ..... 
<error statusCode="404" ..... 
<error statusCode="xxx" .... 

risposta

6

provare questo,

aggiungere nel file web.config.

<system.webServer> 
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" > 
    <remove statusCode="500" /> 
    <error statusCode="500" prefixLanguageFilePath="C:\Contoso\Content\errors" 
    path="500.htm" /> 
</httpErrors> 
</system.webServer> 

e

<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom"> 
    <remove statusCode="404" /> 
    <error statusCode="404" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="401" /> 
    <error statusCode="401" path="/Account/Login.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="501"/> 
    <error statusCode="501" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="411"/> 
    <error statusCode="411" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
    <remove statusCode="403"/> 
    <error statusCode="403" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/> 
</httpErrors> 

e più su questo http://www.iis.net/configreference/system.webserver/httperrors

+2

L'OP ha chiesto se c'era un modo per reindirizzare a una pagina di errore per TUTTI gli errori senza dover immettere tutti gli errori HTTP possibili nel web.config. Hai appena ripetuto la sua domanda. – webworm

+1

@webworm Ho scelto questo come risposta, come supponevo che rispondesse indirettamente alla domanda. La risposta è "No", ogni codice di errore http deve essere definito separatamente. Non esiste una cosa come il codice di errore = :) – mjb

+0

Qual è il contenuto (codice sorgente) di *** Oops.aspx ***? – Kiquenet

5

La sezione httpErrors ha attributo defaultPath.

<system.webServer> 
    <httpErrors defaultPath="Error.html" defaultResponseMode="File"> 
    <clear /> 
    </httpErrors> 
</system.webServer> 

http://www.iis.net/configreference/system.webserver/httperrors

Comunque, io non lo uso, perché defaultPath è bloccato in IIS Express by default. È necessario modificare %homepath%\Documents\IISExpress\config\applicationHost.config per sbloccarlo.

+0

Ho apportato le modifiche nel mio file di configurazione di IIS Express senza alcun risultato. Lo stesso vale anche per lo sblocco di IIS installato sul mio computer. C'è qualcos'altro che deve essere cambiato per far sparire il problema del blocco? – siride

+2

Modern IIS Express memorizza la configurazione nella directory $ (ProjectRoot) \. Vs \ config. L'hai modificato? –

+0

Grazie. Non avevo capito che si era trasferito. La modifica nella nuova posizione ha funzionato. – siride

Problemi correlati