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.PreApplicationStartMethod
IIS 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