使用V8的ReactJs.NET和服务器端呈现会在生产中引发异常

时间:2016-10-03 06:50:59

标签: reactjs.net

我在ASP.NET MVC 4项目中使用ReactJs.NET。我通过在app start上调用的ReactConfig.cs中指定这个来禁用了回退到MSIE javascript引擎:

ReactSiteConfiguration.Configuration.SetAllowMsieEngine(false);

这适用于我的开发人员计算机,但不适用于生产。引发的异常是:

Failed to initialise ClearScript V8. This is most likely caused by the native libraries (ClearScriptV8-64.dll and v8-x64.dll) missing from your app's Bin directory, or the Visual C++ runtime not being installed

我已确保将ClearScript.V8文件夹(包含ClearScriptV8-64.dll和v8-x64.dll)复制到生产服务器和bin文件夹,因此我目前正在查看是否缺少Visual C ++运行时或不。我下载并安装了位于此处的 Visual C ++ Redistributable for Visual Studio 2015 https://www.microsoft.com/en-us/download/details.aspx?id=48145但是抛出了同样的异常。

我有什么明显的遗失吗?它是我安装的错误的Visual C ++运行时吗?

2 个答案:

答案 0 :(得分:1)

这些DLL文件是否在ClearScript.V8文件夹中?例如,他们需要在bin\ClearScript.V8\ClearScriptV8-64.dll

或者,您可以尝试使用ReactJS.NET 3.0的候选版本,它使用较新版本的JavaScriptEngineSwitcher来更改V8的加载方式,不再需要手动复制DLL文件。目前还没有关于ReactJS.NET 3.0的文档,但它与当前的2.x版本非常相似。我很快就会为最终版本制作文档。

答案 1 :(得分:1)

在我的情况下,我设法通过安装Visual C ++ 2013运行时来解决这个问题,这是在这种情况下实际工作的唯一版本。我没有在2012年或2015年都没有运气。

我在这里找到了答案:

https://github.com/reactjs/React.NET/issues/80

和帮助我的评论是:

  

另外一点,ClearScript 5.4.4自述文件说VS2015或2013 C ++   运行时可以工作,但根据我的经验,它只适用于2013年   在场。