404 выбрасывается как экземпляр System.Web.HttpException.Если вы ловите / регистрируете исключения в global.asax
, что-то вроде этого должно сработать:
protected void Application_Error( object sender , EventArgs e )
{
Exception exceptionInstance = Server.GetLastError() ;
HttpException httpException = exceptionInstance as HttpException ;
int? httpStatusCode = ( httpException != null ? httpException.GetHttpCode() : (int?)null ) ;
if ( !httpStatusCode.HasValue || httpStatusCode != 404 )
{
LogExceptionHere() ;
}
return ;
}
Если вы используете Elmah (а вы должны быть ), вам нужно настроить его так, чтобы он игнорировал 404 в вашем файле web.config.Что-то вроде этого:
<configuration>
...
<elmah>
...
<errorFilter>
<test>
<equal binding="HttpStatusCode" value="404" type="Int32" />
</test>
</errorFilter>
...
</elmah>
...
</configuration>