【问题标题】:global asax application_start application begin_request methods?全局 asax application_start 应用程序 begin_request 方法?
【发布时间】:2010-10-28 18:02:25
【问题描述】:

我有问题。在 IIS 7.0 从经典管道模式迁移到集成管道模式时,我们遇到了问题:

“/”应用程序中的服务器错误。

请求在此上下文中不可用...

我们在

找到了解决此问题的方法
mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx

作为解决方案,在 global.asax 中,我必须将 application_start 事件转发到 Application_BeginRequest 事件。

void Application_Start(object sender, EventArgs e) { // sender has type 'System.Web.HttpApplicationFactory' }

Application_BeginRequest(Object source, EventArgs e) | {

// sender has type 'System.Web.HttpApplication' }

或者另一种解决方案是,Application_Start 事件可以在 Application_BeginRequest 之后开始。

有什么建议吗? 我没有选择“经典模式”这样的选择

【问题讨论】:

    标签: iis-7 global-asax httpapplication


    【解决方案1】:

    将代码移至Application_BeginRequestSession_Start。无论如何,您不应该在Application_Start 中使用Request 对象。

    Request 对象包含特定于一页请求的信息。在Application_Start 事件中对这些信息做任何事情都没有任何意义。

    【讨论】:

    • 我没有 session 或 session_start 。我需要的基本上是在 application_start 事件之前调用 Application_BeginRequest 事件或使用有效参数从 app_start 调用 begin_request 方法..
    • 您不能更改事件的顺序,应用程序必须先启动才能处理请求。为什么在有请求之前需要 Request 对象?
    【解决方案2】:

    所以,将您的应用程序池模式更改为经典。

    【讨论】:

    • 这不是我的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多