2

MVC アプリケーションでクライアント側コンポーネントをレンダリング/初期化するために ReactJS.NET (バージョン 3.0.0) を使用していますが、Html.ReactInitJavaScript()ヘルパー メソッドを呼び出すと、実行時に次の例外が発生します。

[TinyIoCResolutionException: タイプを解決できません: React.IReactEnvironment] React.TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration 登録、NamedParameterOverloads パラメータ、ResolveOptions オプション) +833 React.TinyIoC.TinyIoCContainer.Resolve(タイプ resolveType) +60 React.TinyIoC.TinyIoCContainer。 Resolve() +56 React.Web.Mvc.HtmlHelperExtensions.get_Environment() +53

[ReactNotInitializedException: ReactJS.NET が正しく初期化されていません。] React.Web.Mvc.HtmlHelperExtensions.get_Environment() +107 React.Web.Mvc.HtmlHelperExtensions.ReactInitJavaScript(HtmlHelper htmlHelper, Boolean clientOnly) +141

ただし、これはIIS Expressでデバッグ モードでない場合にのみ発生します。デバッグ中、またはローカル IIS を使用している場合、このエラーは発生しません。

ReactJS.NET はWebActivatorEx、PreApplicationStart 中に初期化するために使用します。WebActivatorEx.PreApplicationStartMethodIIS Express でトリガーするための既知の問題/回避策はありますか?

以下は、ReactConfig役立つ場合に備えて私のものです。の提供されたバージョンを使用しておらず、変換/バンドルにreact使用しています。webpack

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(ReactConfig), "Configure")]
namespace MyApplication
{
    public static class ReactConfig
    {
        public static void Configure()
        {
            ReactSiteConfiguration.Configuration
                .SetLoadBabel(false)
                .SetLoadReact(false)
                .AddScriptWithoutTransform("~/dist/bundle.server.js");
        }
    }
}

編集:

FWIW、私は無駄に置き換えようとしWebActivatorEx.PreApplicationStartMethodましSystem.Web.PreApplicationStartMethodた。OwinStartup

4

0 に答える 0