Метод InvokeAsync () успешно генерирует исключение с помощью EnsureSuccessStatusCode (), хотя мой настраиваемый фильтр исключений не получает его.
Прикрепленный код.Мы будем благодарны за любую помощь
[MyExceptionFilter()]
public async Task<IViewComponentResult> InvokeAsync()
{
HttpResponseMessage responseMessage = new HttpResponseMessage();
string responseContent = string.Empty;
List<SystemMenus> systemMenu = new List<SystemMenus>();
using (CommonUtility commonUtility = new CommonUtility())
{
using (var client = commonUtility.getHttpClient(WebClientContentType.JSON,GetUserTokenId()))
{
string systemMenuId = HttpContext.Request.Headers["systemMenuId"];
responseMessage =await client.GetAsync(new Uri(commonUtility.GetWebApiUrl() + "/api/Auth/GetSubMenuByMenuId?systemMenuId=" + systemMenuId));
responseContent = await responseMessage.Content.ReadAsStringAsync();
responseMessage.EnsureSuccessStatusCode();
systemMenu = (List<SystemMenus>)JsonConvert.DeserializeObject(responseContent, typeof(List<SystemMenus>));
}
}
return await Task.FromResult((IViewComponentResult)View("_SubMenu", systemMenu));
}
В моем фильтре исключений
открытый класс MyExceptionFilter: ExceptionFilterAttribute {#region Объявление
Logger logger;
#endregion
#region Constructor
public MyExceptionFilter ()
{
logger = ConfigUtility.getNlogConfig();
}
#endregion
#region Public/Private Methods
public override void OnException(ExceptionContext exContext)
{
string strStatusCode = string.Empty;
if (exContext.Exception.GetType() == typeof(HttpRequestException))
{
HttpRequestException exception = (HttpRequestException)exContext.Exception;
strStatusCode = exception.Message;
}
exContext.Result = new RedirectToActionResult("Error", "Error", new { statusCode = strStatusCode });
return;
}//end method