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ます。ローカルホストでテストすると、すべて正常に動作します。NotFound存在しないページを入力すると、次に にリダイレクトされ/FourOFour?LastURL=pageます。そして、メールが管理者に送信されます。サーバーに公開すると、見つからないことが FourOFour にリダイレクトされますが、ページが見つかりません。どうすればこれを解決できますか? 誰か助けてください。

編集:FourOFourが見つからず、同じページにリダイレクトし続けるため、無限ループが作成されます。

4

1 に答える 1

1

動的コンパイルは無効になっていますか?

そうであり、変更したファイルのみをコピーした場合、これが問題の原因である可能性があります。

問題の原因となる可能性があるもう 1 つのことは、行った変更により、プロジェクトに追加された新しいファイルの作成が必要になった場合です。その場合は、.csproj ファイルもサーバーにコピーして、新しく追加されたファイルを動的コンパイルに含めるように Orchard に指示する必要があります。

リリース モードでモジュールを再構築し、変更したファイルだけでなく、モジュール全体をサーバーにコピーして、それが機能するかどうかを確認してください。

于 2012-11-28T15:05:05.277 に答える