Elmah:如何从错误报告中获取 JSON HTTP 请求正文

2024-01-02

我正在使用 Elmah 来记录异常。如果请求是基于表单的请求(即 Content-Type:application/x-www-form-urlencoded),则 Elmah 非常擅长记录请求主体,但对于基于 JSON 的请求,其中内容类型为 application/json,请求主体在错误报告中找不到。有人知道我在哪里可以找到这个请求正文,以便我可以正确诊断我的异常吗?

更新:2012-01-03

为了澄清基于 JSON 的请求的含义,下面是一个以 JSON 作为请求正文的原始 HTTP 请求示例:

PUT http://mycompany.com/api/v1.0/me HTTP/1.1
Host: mycompany.com
Content-Length: 20
Content-Type: application/json

{"city":"Vancouver"}

到目前为止,ELMAH 仅记录请求外围的上下文或信息,并且可以通过标准方式方便地捕获这些上下文或信息。表单可以说是一种特殊处理,因为 ASP.NET 已经完成了解码和记忆当 MIME 类型为时请求实体application/x-www-form-urlencoded。另一方面,JSON 请求是有问题的,因为在发生异常时,输入流 (HttpRequest.InputStream http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx) 可能已部分或全部被 JSON 解码器消耗。 ELMAH 无法出于伐木目的对其进行第二次破解。因此,您必须确保在将输入流或文本传递给任何 JSON 解码器之前对其进行缓冲,并将其存储在类似的地方HttpContext.Items http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx。然后您可以尝试恢复缓冲的数据并发生错误时将其附加到外发邮件中 http://scottonwriting.net/sowblog/archive/2011/01/06/customizing-elmah-s-error-emails.aspx。 ELMAH 当前不支持将任意数据附加到记录的错误。然而有ErrorLogModule有一个Logged事件并提供所记录错误的 ID。这可用于将输入数据存储在其他地方(如果您使用后端数据库来存储错误日志,则可能存储在另一个表中),但通过 Id 维护关联将其与记录的错误联系起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elmah:如何从错误报告中获取 JSON HTTP 请求正文 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • Windows SDK - C# - 调试进程退出并出现错误代码 -1073741502

    简洁版本 当进程退出并出现错误代码 1073741502 时 如何确定哪个 DLL 无法加载 以及可能的原因 长版 我正在尝试为 Mercurial 编写一个 pretxnchangegroup 挂钩 作为该挂钩的一部分 我需要获取运行命令
  • JS中生成不重复随机数

    我有以下功能 function randomNum max used newNum Math floor Math random max 1 if inArray newNum used 1 console log newNum is no
  • MRI ruby​​ 线程和性能

    我的第一个问题是这样的 但我已经潜伏了很长一段时间 所以如果我违反了任何规则或发布了垃圾问题 你必须原谅我 我试图更好地理解线程 我决定测试 MRI 并看看它的总体表现如何 给出以下代码 和输出 为什么线程操作比非线程变体慢得多 code
  • 是否可以使用 Javascript 捕获浏览器的文件打开/保存对话框事件

    使用 Javascript 可以监听浏览器的文件打开 保存对话框事件 当我收到保存文件对话框现已打开的通知时 我想执行一项操作 具体来说 我想在对话框打开时隐藏加载微调器 但这很可能是任何其他操作 我相信我可以为我创建的对话框执行此操作 但
  • 如何让 Visual C# studio 识别按键输入

    我对 C 和一般编程还很陌生 基本上我的问题是我试图编写一个简单的代码 它使用按键输入 但是当我运行 调试 程序时 它根本无法识别任何按键输入 KeyPreview设置为true 但似乎仍然没有做任何事情 你能告诉我我做错了什么吗 谢谢 u
  • DateFormat 日期解析行为从 Java 8 更改为 Java 9,是否有相关的环境设置? [复制]

    这个问题在这里已经有答案了 我有一个遗留的 Web 应用程序 其中的 Java 代码是在 Java 5 中编译和运行的 当尝试构建新环境以在 Java 12 中运行相同的代码时 我遇到了日期格式问题 我已经在 J ava 5 7 8 9 1
  • 如何检测字节数组到字符串转换中的字符串结尾?

    我从套接字收到一个字节数组中的字符串 如下所示 128 5 6 3 45 0 0 0 0 0 网络协议给出的大小是字符串的总长度 包括零 因此 在我的示例中为 10 如果我只是这样做 String myString new String m
  • jQuery-UI 日期选择器默认日期

    我的 jQuery UI 日期选择器有问题 我搜索了又搜索 但没有找到答案 我有以下代码 我希望当用户单击 birthdate输入当前日期选择为01 01 1985 现在正
  • 来自 x(日期) 的 Gnuplot y 轴值

    我想知道 y 如何从 x 中获取值 x 存储日期 我有以下日期 13 3 2014 218 11 11 12 4 2014 218 37 12 5 5 2014 218 31 34 7 5 2015 218 31 10 23 5 2014
  • Xcode 8 中的 Core Data Codegen 失败

    我有一个 iOS 应用程序 其中包含具有 6 个实体的核心数据模型 实体Name设置如下 班级名称 Name Module 当前产品模块 可待因 类定义 所有其他 5 个实体的设置类似 问题1 已自行修复 但留给后代 代码是在派生数据文件夹
  • 尝试将“zone.js”编译为外部模块,但它看起来像全局模块

    我有 AngularClass angular2 webpack starter 项目 我已经安装了所有 npm 依赖项 现在我正在尝试安装打字 打字 json dependencies zone js github gdi2290 typ
  • Typesafe 堆栈和 Scala 2.10 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 在 sca
  • Julia - 如何通过 WebSocket 订阅

    我想使用 Julia 使用 Websockets 订阅一些数据源 例如 从linux终端 我可以成功获取如下数据 wscat c wss www bitmex com realtime op subscribe args orderBook
  • CDI 事务管理:@Transactional 如何工作?

    在会话范围内有一个简单的 CDI bean 并注入了实体管理器 Named myBean SessionScoped public class MyBean implements Serializable private static fi
  • Vue模板如何禁止控制台登录?

    起源 log Vue prototype log console log 禁止场所
  • 在 Haskell 中从 Excel 读取数据

    我想从 xls 文件获取数据 而无需手动打开 Excel 一种可能性是使用 COM 自动化 有com 1 2 3 http hackage haskell org package com 1 2 3 and hdirect http hac
  • PHP比较二维数组

    我想知道如何比较两个二维数组的值 第一个数组 Array 1 0 gt Array 0 gt a 1 gt Array 0 gt b 2 gt Array 0 gt c 第二个 Array 2 0 gt Array 0 gt a 1 gt
  • 并非所有实例都在 Azure 应用服务中运行

    我正在使用 Azure 应用服务 它托管使用以下命令从事件中心读取数据的应用程序EventProcessorHost 我分配了 6 个实例 手动缩放 来运行 我检查了指标 CPU Time 在App Service中发现只有5个实例正在运行
  • JSON.NET Visual Studio 2008 和 .NET 3.5 紧凑框架

    我可以在 Visual Studio 2008 中使用 JSON NET 和 NET 3 5 Compact Framework 吗 如何在 IDE 中安装 配置它 我在网上搜索过但找不到 我找到了这个Visual Studio 2008
  • Elmah:如何从错误报告中获取 JSON HTTP 请求正文

    我正在使用 Elmah 来记录异常 如果请求是基于表单的请求 即 Content Type application x www form urlencoded 则 Elmah 非常擅长记录请求主体 但对于基于 JSON 的请求 其中内容类型