Delega di errorMode in httpErrors
Avviso: questa funzionalità non funziona come previsto in IIS 7.0. Viene risolto per la prossima versione. In IIS 7.0 è possibile bloccare e sbloccare gli errori HTTP per siti specifici o per l'intero server; ma attualmente "lockAllAttributesExcept="errorMode" non funziona per httpErrors. Tuttavia, è possibile usare le idee in questo articolo sull'sblocco di specifici attributi in altre sezioni di configurazione IIS.
Esistono casi in cui un hoster potrebbe dover delegare ai propri clienti impostazioni specifiche nel file "applicationhost.config" senza delegare l'intera sezione, l'impostazione errorMode nella sezione httpErrors è una di esse, un'altra è l'impostazione scriptErrorSentToBrowser nella sezione ASP. Ai fini della risoluzione dei problemi, il cliente di un hoster potrebbe voler visualizzare errori dettagliati nei client remoti. Per abilitarlo, l'hoster deve bloccare tutti gli attributi tranne errorMode (lockAllAttributesExcept="errorMode") e bloccare l'elemento error (lockElements="error"). In questo modo i clienti possono modificare errorMode da "detailedLocalOnly" a "Dettagliato" e otterrebbero errori dettagliati per tutti gli errori.
Per delegare l'impostazione errorMode:
Consenti la delega della
<httpErrors>
sezione in applicationhost.config tramite overrideModeDefault aprendo%windir%\system32\inetsrv\config\applicationhost.config
con un editor di testo e modificando il <nome della sezione="httpErrors" overrideModeDefault="Deny" /> element come indicato di seguito:<section name="httpErrors" overrideModeDefault="Allow" />
Usare lockAllAttributesExcept e lockElements per consentire solo la delega dell'impostazione errorMode, individuare l'elemento e modificare come
<httpErrors>
indicato di seguito:<httpErrors lockAllAttributesExcept="errorMode" lockElements="error" >
La sezione httpErrors potrebbe essere simile alla seguente dopo la modifica:
<httpErrors lockAllAttributesExcept="errorMode" lockElements="error"> <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" /> <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" /> <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" /> <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" /> <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" /> <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" /> <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" /> <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" /> <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" /> </httpErrors>
Ora che l'hoster può usare appcmd per impostare l'impostazione errorMode su "Dettagliato" o "Personalizzato" (vedere l'esempio seguente)
%windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:httpErrors -errorMode:Detailed
oppure è possibile chiedere ai clienti di inserire l'istruzione seguente nei file di web.config:
<system.webServer> <httpErrors errorMode="Detailed"/> </system.webServer>
Risorse
Per altre informazioni, vedere: