2010-05-27 65 views
1

我知道IIS记录了我可以访问的http请求的部分内容。我想在短时间内记录整个HTTP请求。这意味着我想存储以原始形式发布的数据。这可能使用ISS的日志记录工具吗?还是我必须安装另一个工具?日志流量(包括发布的数据)IIS 6.0 - windows server 2003

我有以下问题。我通过asp.net mvc公开了一个'平静的web服务',它将关系数据库中的发布数据存储起来。我通过javascript测试了这个服务。我网址编码一些数据,并使用jQuery发布。按预期将数据存储在数据库中。某些客户也使用unix和wget将数据发布到同一个Web服务。不幸的是,这些数据没有存储url编码(所以如果它包含特殊字符如&),我们会丢失一些数据。他们声称他们发送的数据URL编码。这是真的吗? wget的机制是不同于javascript文章的机制?我忽略了一层吗?我想仔细检查通过wget发送的数据是否实际上是URL编码的。

谢谢!

最良好的祝愿,

基督教

回答

0

您可以创建一个MVC行为过滤器,然后你可以访问Request对象,拉出有趣位。然后,您可以将此信息存储在文本文件或日志记录数据库中。我之前使用过这种方法,如果将保存到数据库操作的线程不会减慢一般请求操作的速度,它就可以很好地工作。

public class LogRequest : ActionFilterAttribute, IActionFilter 
{ 
    #region IActionFilter Members 

    void IActionFilter.OnActionExecuting(ActionExecutingContext var) 
    { 
    //code goes here 
    } 

    #endregion 
} 


    [AcceptVerbs(HttpVerbs.Get)] 
    [LogRequest()] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

你在这里问了两个问题,我不知道第二部分。

+0

谢谢我在想,但我正在寻找一些东西来查看流量(包括发布的数据),然后它击中IIS/ASP.NET。看起来好像有些图层会自动将数据解码到iis之前。这有道理吗?对不起,如果我的问题不够清楚 – cs0815 2010-05-29 09:02:40

+0

可能想尝试像serverfault问题的网站,然后,stackoverflow是编程问题。我不太了解IIS日志记录或服务器程序。 也许在服务器上运行WireShark将使您能够嗅探数据包? – Phil 2010-06-07 10:04:39