【问题标题】:mvc3 invokes Application_EndRequest without Application_BeginRequest()mvc3 在没有 Application_BeginRequest() 的情况下调用 Application_EndRequest
【发布时间】:2012-03-13 15:12:56
【问题描述】:

我有一个带有 DevExpress MVC 控件和默认设置的 MVC3 应用程序

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

RegisterRoutes 中,但来自 DevEx 的以下 URL 包括:

/DXR.axd?r=1_3,1_4...
/DXR.axd?r=1_42,1_41,14_18,14_2,...

只调用 Application_EndRequest() 而不调用 Application_BeginRequest()

目前,这导致了绑定/取消绑定 nHibernate CurrentSessionContext 的奇怪解决方法...可能有更好的方法将这些 URL 排除为 Application_EndRequest() 中的字符串比较?

(参考:

In what situation Application_EndRequest is called but Application_BeginRequest is not called?

我找不到任何例外,它只涉及上述 DevEx URL)

【问题讨论】:

  • 你在哪里初始化 nhibernate?
  • 在 Application_Start 中...所有其他请求,包括。 “动作”调用方法和 nHibernate 效果很好
  • 为什么不在会话开始时为 nhibernate 绑定会话处理?
  • 我有类似this这样的场景来实现“每个请求的会话”模式

标签: c# asp.net asp.net-mvc-3 devexpress


【解决方案1】:

我不确定这是否对你有用,但我在 DevEx 中遇到了一些奇怪的行为,我解决了所有的麻烦,方法是从 httphandlers 的 web.config 中删除这一行并将其只保留在 @ 987654321@ -> handlers

  <add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v11.1, Version=11.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />

也许会有所帮助

【讨论】:

  • 我已经注释掉了处理程序,但行为没有改变
【解决方案2】:

确保您使用的是特殊的DX Project Template,并且所有必需的条目都已注册。

在不使用标准 ASP.NET MVC 项目模板的情况下检查问题是否仍然存在。

如果此问题仅与 DX 有关,我想最好联系他们的支持团队。

【讨论】:

  • 这可能是一种方法,因为我在没有任何 DX 组件的情况下启动了项目,后来手动迁移了项目......有没有任何故障安全和简单的方法可以将我的项目转换为干净的模板?跨度>
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 2013-06-22
  • 1970-01-01
相关资源
最近更新 更多