我有 WCF 4.0 REST 服务。automaticFormatSelectionEnabled如果我在文件中启用web.config,则服务将根据 HTTP“Accept”标头正确选择序列化为 XML 或 JSON。
但是,当我使用浏览器发出 GET 命令时,响应正文会以 XML 格式返回,但 HTTP 内容类型标头为“text/html”。这会导致浏览器无法意识到响应是 XML,并尝试将其呈现为 html(这当然效果不佳)。这使得在浏览器中测试我的 GET 方法变得更加困难。
如果我禁用automaticFormatSelectionEnabled,那么一切都会按预期工作(响应正文包含 XML,HTTP 内容类型为“application/xml”),但是,我希望能够根据请求自动切换到 JSON。
通过浏览器请求时,是否有某种方法可以使内容类型正确返回?
我正在使用Serilog作为我的日志框架(Seq作为我的日志接收器).记录异常时,我使用的是:
log.Error(ex, "Operation Failed");
Run Code Online (Sandbox Code Playgroud)
我的应用程序大量使用async/await方法.当发生未处理的异常时,堆栈跟踪很难读取.有一个nuget包可以清理异步堆栈跟踪(https://github.com/aelij/AsyncFriendlyStackTrace).这将创建一个扩展方法,使您可以访问已修改/清除的堆栈跟踪:
ex.ToAsyncString()
Run Code Online (Sandbox Code Playgroud)
我希望能够使用此库在写入Seq之前拦截堆栈跟踪,而是记录清理/修改的堆栈跟踪.
是否有一种方法可以使用Serilog/Seq来控制发送到日志接收器的错误字符串的确切输出?