我想记录整个请求&响应对一个servicestack web服务。 我已经看过了响应文件管理器,但暴露了流是只读的。
Answer 1:
你见过ServiceStack内置的请求记录器插件? 这是一个可配置的内存请求记录器维护最近请求的日志/(错误响应)。
如果您想不同的行为,你可以实现并注册自己的IRequestLogger ,它被调用为每个请求。 它的日志方法被调用为以下参数每个请求。
void Log(IRequestContext requestContext, object requestDto,
object response, TimeSpan elapsed);
您还可以检索与请求上下文的IHttpRequest / IHttpRespnse对:
var httpReq = requestContext.Get<IHttpRequest>();
var httpRes = requestContext.Get<IHttpResponse>();
从这里你可以得到原始ASP.NET/HttpListener请求/响应类型的
var originalReq = httpReq.OriginalRequest;
var originalRes = httpReq.OriginalResponse;
过滤响应
否则内省的响应方式是要么
- 的响应滤波器或响应滤波器属性 ; 要么
- 重写OnAfterExecute()对从静止/ ServiceBase继承自己的基类
文章来源: how do I log requests and responses for debugging in servicestack