当前位置:  开发笔记 > 编程语言 > 正文

IIS7,RewritePath和IIS日志文件

如何解决《IIS7,RewritePath和IIS日志文件》经验,为你挑选了1个好方法。

我在IIS7上运行的ASP.NET 3.5应用程序中使用Context.RewritePath().

我在应用程序BeginRequest事件中做它,一切工作文件.

/ sports的请求被正确地重写为default.aspx?id = 1,依此类推.

问题是在我的IIS日志中,我看到了对/Default.aspx?id=1的GET请求,而不是/ sports.

这种代码在IIS6下运行良好.

由于必须实现某些业务逻辑,因此不能使用Microsoft Rewrite模块.

谢谢.

编辑:

似乎我的处理程序在管道中太早了,但是如果我将逻辑移动到后来的事件,那么整个重写的东西都不起作用(为时已晚,StaticFileHandler接收我的请求).

我用Google搜索并用Google搜索,问道,不敢相信没有人有这个问题?

编辑:

哎呀!这是我在IIS论坛上发现的内容:

"这是因为在集成模式下,IIS和asp.net共享一个公共管道,现在IIS可以看到RewritePath,而在IIS6中,它甚至没有被IIS看到 - 你可以通过使用经典模式来解决这个问题IIS6".

最后更新:请看下面的答案,我在生产环境中使用了一年多的时间后对结果进行了更新.



1> markom..:

经过一番研究,我终于找到了问题的解决方案.

我已使用新的(在ASP.NET 3.5中引入)Context.Server.TransferRequest()方法替换了对Context.RewritePath()方法的调用.

现在看起来很明显,但IIS Core团队的事件高级开发工程师并没有想到这一点.

我已经测试了它的会话,身份验证,回发,查询字符串......问题,但没有找到.

Tommorow我会将更改部署到一个非常高的流量站点,我们很快就会知道它是如何工作的.:)

我会回来更新.

更新:解决方案仍然不完全在我的生产服务器上,但它已经过测试,它确实有效,据我所知,到目前为止,它是我的问题的解决方案.如果我在生产中发现任何其他内容,我会发布更新.

最后的更新:我已经在生产中使用了这个解决方案超过一年,它已被证明是一个良好而稳定的解决方案,没有任何问题.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有