我有一个大公司。当前使用 Win 2003 服务器 IIS 6 托管的混合了经典 asp 和 asp.net 的网站。
无论它们来自哪个世界,我都需要通过一些 html 修改来修改所有页面输出。asp 部分真的很旧而且结构很糟糕,因此我不能对任何类型的“一般包含”采取行动来应用我们需要的所有更改。最后,一些 asp 页面从多个 OCX/COM 对象输出代码......我们已经在计划整个重写/迁移到 .net,但不幸的是,这是一个长期项目,我无法快速完成。
所以我正在考虑(和测试)将它迁移到 Win 2008 R2、IIS 7.5 并利用集成管道模式,我可以使用 .net httpmodule 修改所有输出。一切正常:我可以正确地将 html 代码“注入”到通过 asp 和 asp.net 呈现的页面,但是当经典的 asp 页面要处理通过 post 发送的表单数据时我遇到了问题(x-www-form-urlencoded ) 模块。
似乎经典的 asp 在使用集成管道模式时根本缺少 Request.Form 对象,每次使用都会抛出错误“80004005”;Request.QueryString 相反,它工作正常。
我不会切换回经典管道模式,因为我将失去修改经典 ASP 呈现的页面的好处。在这里使用 Isapi 过滤器是一场噩梦,我不会进入那个方向。
有谁知道在集成管道模式处于活动状态时让 Request.Form 为经典 asp 工作的任何解决方法 - 或者 - 在使用经典管道时修改来自经典 asp 的最终呈现页面输出的任何方法,以便我可以在发送之前使用 .net 代码对其进行修改它到浏览器?
谢谢你的帮助,Squiffy
编辑:不幸的是,我们从未找到解决此问题的方法。与此同时,我们使用许多现代解决方案从头开始完全重建了网站(耶!)。谢谢大家的帮助!