Я успешно использую аналогичную настройку, которую я перенес с IIS 6 на IIS 7.
Мой web.config имеет следующий раздел:
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/302page.asp" responseMode="ExecuteURL" />
<error statusCode="500" prefixLanguageFilePath="" path="/500page.asp" responseMode="ExecuteURL" />
<error statusCode="500" subStatusCode="100" path="/500page.asp" responseMode="ExecuteURL" />
</httpErrors>
<system.webServer>
Я настроил это на соответствующем сайте с помощью диспетчера IIS, но вы можете сделать это через файл web.config, если вам проще.
Вы можете добавить условный заголовок в зависимости от того, должен ли он быть 301, 302 или 404.
404; * * 1 010
Response.Status = "404 Not Found"
Response.AddHeader "Location", pagename
302 (временное перенаправление);
Response.Status="301 Object Moved"
Response.AddHeader "Location", pagename
301 (постоянное перенаправление);
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", pagename
Пул приложений сайта IIS использует интегрированный конвейерный режим. А также прилагаются настройки для раздела отладки для сайта.