private void LogError(Socket socket, HttpSocketContext ctx, Exception ex)
{
var sex = ex as SecurityException;
var ans = ex as ActionNotSupportedException;
if (sex != null)
{
try { ctx.ReturnError(socket, (int)HttpStatusCode.Forbidden, sex.Message, true); }
catch (Exception e)
{
TraceSource.TraceEvent(TraceEventType.Error, 5404, "{0}", e);
}
}
else if (ans != null)
{
try { ctx.ReturnError(socket, 404, ans.Message, true); }
catch (Exception e)
{
TraceSource.TraceEvent(TraceEventType.Error, 5404, "{0}", e);
}
}
else
{
TraceSource.TraceEvent(TraceEventType.Error, 5403, "{0}", ex);
try { ctx.ReturnError(socket, 500, ex.Message, false); }
catch (Exception ex2)
{
TraceSource.TraceEvent(TraceEventType.Error, 5404, "{0}", ex2);
}
}
}