0

我是 Orchard CMS 的新手。如果有任何错误,我需要向管理员创建电子邮件通知。我制作了一个自定义模块,因此它会向管理员发送电子邮件。另外,我已经从错误页面重定向到模块。

这是我的NotFound.cshtml自定义主题中的代码

<script type="text/javascript" language="javascript">
    function ToError() {
        window.location.href = '/FourOFour?LastURL=' +
            (window.location.host + window.location.pathname);
    }
    window.onload = ToError;
</script>

这是我创建的模块中的自定义路线

new RouteDescriptor {
    Priority = 11,
    Route = new Route(
        "FourOFour",
        new RouteValueDictionary {
            {"area", "Prenagen.ErrorEmailing"},
            {"controller","Utama"},
            {"action","Error404"}
        },
        new RouteValueDictionary(),
        new RouteValueDictionary{
            {"area", "Prenagen.ErrorEmailing"}
        },
        new MvcRouteHandler())
}

因此未找到的页面将重定向到/FourOFour. 当我在 localhost 中测试它时,一切正常。NotFound我键入一个不存在的页面,然后它重定向到/FourOFour?LastURL=page. 并且电子邮件被发送给管理员。当我将它发布到服务器时,未找到重定向到 FourOFour,但未找到该页面。我该如何解决这个问题?请任何人帮助我。

编辑:它会创建一个无限循环,因为FourOFour找不到它并不断重定向到同一页面。

4

1 回答 1

1

你的动态编译被禁用了吗?

如果是这样,并且您只复制了已更改的文件,这可能是您出现问题的原因。

可能导致问题的另一件事是,您所做的更改是否需要创建添加到项目中的新文件。如果是这种情况,您还应该将 .csproj 文件复制到服务器,以指示 Orchard 将新添加的文件包含在动态编译中。

尝试在发布模式下重建您的模块并将整个模块复制到服务器,而不是仅复制您更改的文件,看看是否有效..

于 2012-11-28T15:05:05.277 回答