IIS日志文件显示重写而不是原始URL

时间:2008-12-05 03:24:46

标签: asp.net iis url-rewriting logfiles

我遇到了一个问题,即改变我在Asp.Net应用程序中进行Url重写的方式已经改变了IIS日志文件,如下所示:

/ page / 80等.. / page / anotherpage / 80等......

default.aspx page = 1 80等... default.aspx page = 2 80等...

我有点难过这是怎么回事。是否有我缺少的设置(Win 2008,ASP.NET 2.0)中的'runAllManagedRequests'设置也已打开。

4 个答案:

答案 0 :(得分:2)

网址重写是由模块完成的吗?如果是,那么重写模块可能在日志记录模块之前运行。您可以更改模块在IIS管理器中运行的顺序。进入IIS管理器中的模块,然后选择查看有序列表... ;然后你可以按照你想要的顺序上下移动模块。

答案 1 :(得分:0)

我不知道您使用什么方法来重写URL,但我知道使用Apache(以及Windows上的ISAPI_Rewrite),您必须为.htaccess文件(或等效文件)中的每个规则添加一个标志来告诉它记录重写的URL而不是原始的。

答案 2 :(得分:0)

据我所知,这将是设计的,因为IIS只会重新写入重写的URL而不是orignal,因为重写的URL被发送到.Net应用程序及其转换的应用程序。

答案 3 :(得分:0)

这个问题是duplicate

我遇到了完全相同的问题。解决此问题的一种方法是使用Server.Transfer而不是Context.RewritePath。 Server.Transfer不会重新启动整个页面生命周期,因此仍会记录原始URL。请确保为“preserveForm”参数传递“true”,以便QueryString和Form集合可用于第2页。