1

我正在尝试将 MvcMailer 集成到 Orhcard 1.6 中,但出现此错误:

'HttpContext.SetSessionStateBehavior' 只能在引发 'HttpApplication.AcquireRequestState' 事件之前调用。

在文件 Orchard\Mvc\Routes\ShellRoute.cs 第 54 行

我尝试调试,发现错误是从以下位置引发的:

private void CreateControllerContext() {
            var routeData = RouteTable.Routes.GetRouteData(CurrentHttpContext);
            ControllerContext = new ControllerContext(CurrentHttpContext, routeData, this);
        }

MvcMailer 的 mailerBase.cs。在普通的 mvc 4 应用程序中一切正常。

有人可以帮助我或已经成功安装的人吗?

谢谢..

这个帖子http://orchard.codeplex.com/discussions/406407一样的问题..如何解决?

4

1 回答 1

0

我通过执行以下操作为自己解决了这个问题:

  1. 将~/src/Orchard/Mvc/Routes(即Orchard.Framework)中1.6版本的ShellRoutes.cs和RoutePublisher.cs替换为1.5版本的ShellRoutes.cs和RoutePublisher.cs。就我而言,我只是去了 CodePlex,选择 1.5 作为版本并将每个文件复制/粘贴到 VS 中。
  2. 只编译/构建 Orchard.Framework。
  3. 复制您刚刚编译/构建的 Orchard.Framework.dll 并将其放在 Orchard.Web 实例的 ~/bin 文件夹中。

您可以进行比较和/或消除差异,但我只是选择了上述方法,因为它更快。

于 2013-05-06T16:54:28.600 回答