Как вызвать веб-сервис из Filter.Config в Asp.NET MVC
Нужна помощь по регистрации исключения в файле Filter.Config в MVC 4. На самом деле у меня есть веб-сервис, который регистрирует исключения для меня. Но проблема в том, что вызов веб-службы не работает.
См. Приведенный ниже код в файле Filter.Config для регистрации исключения
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomHandleErrorAttribute());
// filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
}
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
Hwy905Error errorObj = new Hwy905Error();
string serializedObj = string.Empty;
var controllerName = string.Empty;
var actionName = string.Empty;
var model = string.Empty;
if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled)
{
return;
}
if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500)
{
return;
}
if (!ExceptionType.IsInstanceOfType(filterContext.Exception))
{
return;
}
// if the request is AJAX return JSON else view.
//if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
//{
// filterContext.Result = new JsonResult
// {
// JsonRequestBehavior = JsonRequestBehavior.AllowGet,
// Data = new
// {
// error = true,
// message = filterContext.Exception.Message
// }
// };
//}
else
{
controllerName = (string)filterContext.RouteData.Values["controller"];
actionName = (string)filterContext.RouteData.Values["action"];
model = Convert.ToString(new HandleErrorInfo(filterContext.Exception, controllerName, actionName));
filterContext.Result = new ViewResult
{
ViewName = "_Error",
MasterName = "_Layout",
ViewData = new ViewDataDictionary(model),
TempData = filterContext.Controller.TempData
};
errorObj.CarrierCode = "HWY905 - Mobile Web App";
errorObj.ClientId = 2;
errorObj.Whse_ID = 14;
errorObj.Containers = "";
errorObj.ExceptionMessage = filterContext.Exception.Message.ToString();
errorObj.StackTrack = filterContext.Exception.StackTrace.ToString();
errorObj.ExceptionType = filterContext.Exception.GetType().ToString();
errorObj.ExceptionPlace = controllerName + "/" + actionName;
errorObj.ExceptionNumber = filterContext.Exception.GetHashCode().ToString();
errorObj.ExceptionInformation = filterContext.Exception.Source.ToString();
errorObj.SourceFeedId = 11;
serializedObj = new JavaScriptSerializer().Serialize(errorObj);
**Hwy905Service.LogSystemErrors(serializedObj, 4);**// Web Service call not working. I want to log exception here through web service call
string result = LogSystemExceptions(serializedObj, 4);
}
filterContext.ExceptionHandled = true;
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.StatusCode = 500;
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
}
}
У меня есть пользовательская страница с ошибкой, которая отображается при появлении любого исключения Но моя проблема в том, что я не могу позвонить на мой веб-сервис. Пожалуйста, помогите мне, ребята, решить эту проблему.
Показанная ниже ошибка