Пример #1
0
        public Task HandleExceptionAsync(HttpContext httpContext, Exception exception)
        {
            var response = httpContext.Response;

            response.StatusCode = (int)HttpStatusCode.InternalServerError;

            var err = JsonRpcError.CreateEmpty();

            err.Error.Code    = exception.HResult;
            err.Error.Message = exception.ToString();

            var memoryStream = new MemoryStream();

            using (var textWriter = new StreamWriter(memoryStream, Utilities.Utf8, Utilities.DefaultBufferSize, true)) {
                Utilities.Serializer.Serialize(textWriter, err);
            }

            memoryStream.Position = 0;

            response.Body = memoryStream;
            response.Headers[HttpHeader.ContentLength] = memoryStream.Length.ToString(CultureInfo.InvariantCulture);

            httpContext.CloseConnection = true;

            return(Task.FromResult(0));
        }
Пример #2
0
        protected static void ReportError([NotNull] IRpcSessionContext context, [NotNull] Exception ex, [CanBeNull] object id = null)
        {
            var err = JsonRpcError.CreateEmpty();

            err.Id            = id;
            err.Error.Code    = ex.HResult;
            err.Error.Message = ex.Message;

            var response = context.Response;

            response.StatusCode = (int)HttpStatusCode.OK;
            response.SetBody(err);
        }