none
(求版主等高手)奇怪,iis 7.0 使用httpmodule 无法获取asp页面request.form信息,求解... RRS feed

  • 问题

  • 程序运行环境 :

    网站使用IIS 7.0,运行在windows 7 下,  appPool为Integrated,

    在web.config 有配置<system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
         <add name="MyModule" type="MyGirl.Moduler.MyModule,MyModuler" />     
        </modules>
      </system.webServer>

    Module的calss为:

    public class MyModule : IHttpModule, IReadOnlySessionState

    {

    public void Init(HttpApplication context)
            {
                context.BeginRequest += new EventHandler(context_BeginRequest);
                context.PreRequestHandlerExecute += (new EventHandler(this.Application_AuthenticateRequest));
               
                //context.PostRequestHandlerExecute += new EventHandler(context_PostRequestHandlerExecute);
               
            }

    public void Application_AuthenticateRequest(object sender, EventArgs e)
            {

    }

    }

    运行过程,当浏览asp文件时,可以在函数Application_AuthenticateRequest获取request.Form的内容,但是经过httpModule模块后,去到asp 实际执行,request.form为空,

    奇怪,,奇怪。。。。

    同样的程序,可以在windows2003+iis6正常运行。为什么有这样的情况出现了,是不是还有什么需要配置的地方?

     

    这个程序的目的是,通过httpmodule捕捉asp与asp.net页面的信息数据。


    2011年4月19日 8:17

全部回复

  • 怎么都没人的,,,,人了??????
    2011年4月20日 15:11
  •    <add name="MyModule" type="MyGirl.Moduler.MyModule,MyModuler" />     

    你这个 type="MyGirl.Moduler.MyModule,MyModuler"改成 type="MyGirl.Moduler.MyModule,MyGirl.Moduler" 或者去掉第二个字符串都可以


    My Blog<
    2011年4月24日 8:26
  •    <add name="MyModule" type="MyGirl.Moduler.MyModule,MyModuler" />     

    你这个 type="MyGirl.Moduler.MyModule,MyModuler"改成 type="MyGirl.Moduler.MyModule,MyGirl.Moduler" 或者去掉第二个字符串都可以


    My Blog<

    与这个无关了,这个无非就是一个文件的名字,如果出错,加载的时候已经报错了。

    可是现在是asp拿不到request.form的值

    2011年4月25日 9:08
  • 只是asp的页面会这样,asp.net的页面不会。
    2011年4月25日 9:19
  • 求解,求到有答案为止。
    2011年4月26日 8:06
  • 错误信息为
    error '80004005'

    /mygirl/TestModule.asp, line 13

     

    第13行的代码为

    <%
        if not isnull(Request.form("xx"))  then %>

     

    就是request.form的值为空,而且是根本不能读取form,,  如果不用 httpmodule, 这个页面可以正常运行。

     

    纠结。。。。。。。。。。

     

    求解。。。。。。。。。。

    2011年4月26日 9:27
  • 谁能告诉我,究竟在PreRequestHandlerExecute 事件之后发生了什么事情,为什么到了httphandle的时候,request.form为空?????????????????????????????????????????
    2011年4月27日 8:35
  • 当在事件PreRequestHandlerExecute曾经调用app.Request,那后面的asp页面就获取不到request.form的值,如果在事件PreRequestHandlerExecute没有调用app.request,那就没问题,,,,奇怪啊。。。。。。
    2011年4月27日 10:00
  • 我也遇到这个难题了,愁死人了,我也是百思不得其解,一个月了搞不定,你的帖子过去好几年了,搞定了吗?
    2017年11月3日 0:02
  • IIS7 的app pool 有两种模式,一个是classic经典模式,一个是integrated集成模式,改成经典模式看下。

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年11月3日 0:43
  • 服务器不允许修改 成经典模式!

    这是个非常古怪的问题,在BeginRequest中,获得了用户的request请求后,读取这个request的url、cookie和headers都没问题,唯独读取 Form对象会让后面的asp页面出错!

    一旦读取了Form,后面的asp页面接收到的 Form 就成了null,【但是aspx页面可以正常接收到Form】,但是asp页面接收到的request的url、cookie却正常!这是为什么??

    我怀疑这是不是 IIS7 和7.5 的bug??但是,我想不通的是,我只是在BeginRequest中 读取request,为什么 request 在后面的asp页面中消失了呢?


    2017年11月6日 6:19