【问题标题】:ReactJs.NET and server side rendering with V8 throws exception in productionReactJs.NET 和使用 V8 的服务器端渲染在生产中引发异常
【发布时间】:2016-10-03 06:50:58
【问题描述】:

我在 ASP.NET MVC 4 项目中使用 ReactJs.NET。我已通过在应用启动时调用的 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++ 运行时?

【问题讨论】:

    标签: reactjs.net


    【解决方案1】:

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

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

    【讨论】:

    • 是的,所有必需的文件都复制到 bin\ClearScript.V8。感谢您的回复!实际上,我设法在您的 Github for reactjs.net 中找到了答案 :) 请参阅下面的答案。
    【解决方案2】:

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

    我在这里找到了答案:

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

    帮助我的评论是:

    再说明一下,ClearScript 5.4.4 自述文件说的是 VS2015 或 2013 C++ 运行时可以工作,但根据我的经验,它只在 2013 年有效 出现了。

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2016-08-20
      • 1970-01-01
      • 2016-07-04
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多