我遇到了一个问题,即改变我在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'设置也已打开。
答案 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页。