我正在使用 ReactJS.NET(版本 3.0.0)在 MVC 应用程序中渲染/初始化客户端组件,但是在调用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
[ReactNotInitialisedException: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
无济于事。