【发布时间】:2013-07-28 00:08:00
【问题描述】:
我有一个大公司。当前使用 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 代码对其进行修改?
感谢您的帮助, 湿漉漉的
编辑:不幸的是,我们从未找到解决此问题的方法。与此同时,我们使用许多现代解决方案从头开始完全重建了网站(耶!)。谢谢大家的帮助!
【问题讨论】:
-
只使用
Request("formElement")有效吗? -
另外,您可以发布 URL(或至少是主机名)的样子吗?而且 - 任何浏览器都会发生这种情况吗?
-
嗨,Request("formElement") 也失败了,老实说,它的所有代码都是这样编写的。
-
URL 不是问题,因为我检查了wireshark 以及它以url 编码形式正确传输到服务器的内容。如果我从 post 更改表单标签以使其正常工作,但我不能使用这种方式,因为有时我无法在 url 中显示敏感信息。
-
很遗憾,我们从未找到解决此问题的方法。与此同时,我们使用许多现代解决方案从头开始完全重建了网站(耶!)。谢谢大家的帮助!
标签: asp.net asp-classic iis-6 iis-7.5 integrated-pipeline-mode