我试图计算一个长度HTTP Response.似乎流不想播放.(没有允许读取.并且Content-Length似乎没有设置)我希望简单地在HttpContent响应上调用一些length属性.从那以后,我用谷歌搜索,看到了什么看起来像我不明白的过滤器周围的复杂解决方案.是否有可能访问长度(内容本身是额外的选项)如果不是我会欣赏一个链接到'mvc4/.net 4.5过滤器'的例子,我应该工作,直到我明白.:-)
public override void Init()
{
base.Init();
EndRequest += new EventHandler(EndRequestHandler);
}
public void EndRequestHandler(object sender, EventArgs e) {
var admService = new AdminServices();
admService.HTTPTrace(Context);
}
public void HTTPTrace(HttpContext httpContext) {
try {
var eventTrace = new MasterEventTrace();
eventTrace.RemoteAddress = req.UserHostAddress;
eventTrace.RequestLengthBytes = req.ContentLength;
// var targetMemoryStream = new MemoryStream();
// res.OutputStream.CopyTo(targetMemoryStream);
int len;
int.TryParse(res.Headers["Content-Length"], out len );
eventTrace.StatusCode = res.StatusCode;
eventTrace.ResponseLengthBytes = len; // <<<<<<< HOW to calculate this
Run Code Online (Sandbox Code Playgroud)
编辑:基于达林的回应,我得到了这个工作,谢谢你Darin 我做了一些调整,以适应这种情况,但除此之外建议.它显示了Global.asax.cs中的更多信息,并根据需要记录了请求和响应信息.
//Global.asax.cs
public …Run Code Online (Sandbox Code Playgroud)