public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.Equals("Users")) { var url = string.Format(@"http://localhost:51895/{0}/{1}", filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, filterContext.ActionDescriptor.ActionName); var uri = new Uri(url, UriKind.Absolute); try { var request = WebRequest.Create(uri); request.Method = "POST"; var postParams = filterContext.ActionParameters["data"]; if (postParams != null) { var bFormatter = new BinaryFormatter(); var dataStream = request.GetRequestStream(); bFormatter.Serialize(dataStream, postParams); //request.ContentType = "application/x-www-form-urlencoded"; //request.ContentLength = request.GetRequestStream().Length; dataStream.Close(); } var response = request.GetResponse(); var s = response.GetResponseStream(); var sr = new StreamReader(s, Encoding.ASCII); var result = sr.ReadToEnd(); filterContext.Result = new JsonResult(); WriteResponse(result, filterContext); } catch (Exception e) { var exception = e.GetBaseException(); var serviceError = new ServiceError { ResponseCode = "404", Url = url, Message = exception.Message }; var result = new JsonResult(); result.Data = serviceError; filterContext.Result = result; } } else { base.OnActionExecuting(filterContext); } }
public JsonResult JsonError(Exception exception, string requestId, string url) { var e = exception.GetBaseException(); var result = new ServiceError { Message = e.Message, RequestId = requestId, ResponseCode = "500", Url = url }; return base.Json(result); }