IIS日志请求正文/ POST数据

有谁知道我可以如何让IISloginPOST数据或整个HTTP请求?

IIS日志只loggingquerystring和标题信息,没有任何POST数据。

如果您使用的是IIS7,则可以为状态码200启用“失败请求跟踪”。这将logging所有数据,您可以select要包含的数据types。

在IIS6或7中,您可以在global.asax中使用Application_BeginRequest并创build自己的POST数据日志logging。

或者,在IIS7中,您可以使用自己的自定义日志logging来编写HTTP模块。

在托pipe代码中,您可以使用Response.AppendToLog方法。 这个方法会将数据附加到cs-uri-stem字段 – 总长度最多为4100个字符(未logging)。 如果超过该限制,则将logging的值replace为“…”

例如,像这样添加到你的Global.asax文件应该做的伎俩(C#):

void Application_EndRequest(Object Sender, EventArgs e) { if( "POST" == Request.HttpMethod ) { byte[] bytes = Request.BinaryRead(Request.TotalBytes); string s = Encoding.UTF8.GetString(bytes); if (!String.IsNullOrEmpty(s)) { int QueryStringLength = 0; if (0 < Request.QueryString.Count) { QueryStringLength = Request.ServerVariables["QUERY_STRING"].Length; Response.AppendToLog( "&" ); } if (4100 > ( QueryStringLength + s.Length ) ) { Response.AppendToLog(s); } else { // append only the first 4090 the limit is a total of 4100 char. Response.AppendToLog(s.Substring(0, ( 4090 - QueryStringLength ))); // indicate buffer exceeded Response.AppendToLog("

"); // TODO: if s.Length >; 4000 then log to separate file } } } }

虽然我明白这是一个老问题,但是我发现这个代码给了我所需要的东西,一个带有完整请求头文件和响应的文本文件,把它放到你的global.asax.cs文件中:

 protected void Application_BeginRequest(Object Sender, EventArgs e) { string uniqueid = DateTime.Now.Ticks.ToString(); string logfile = String.Format("C:\\path\\to\\folder\\requests\\{0}.txt", uniqueid); Request.SaveAs(logfile, true); } 

这将为每个请求(包括图像)创build一个文本文件,所以要小心使用它。 我只用它来logging特定的post请求。

试试你的web.config文件来追踪一切

 <tracing> <traceFailedRequests> <remove path="*" /> <add path="*"> <traceAreas> <add provider="ASP" verbosity="Verbose" /> <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> <add provider="ISAPI Extension" verbosity="Verbose" /> <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,Rewrite" verbosity="Verbose" /> </traceAreas> <failureDefinitions timeTaken="00:00:00" statusCodes="200-999" /> </add> </traceFailedRequests> </tracing> 

尝试在您的IIS日志设置中启用以下内容:

方法(cs方法)

URI词干(cs-uri-stem)

URI查询(cs-uri-query)