未处理的类型' System.StackOverflowException'发生在RDotNet.dll中以在Web应用程序中加载R库

时间:2018-04-03 06:41:25

标签: c# r r.net

我在加载" dplyr"时遇到错误相同的错误库。

engine.Evaluate("library(dplyr)");

上面代码我同样的错误

  

"未处理的类型' System.StackOverflowException'   发生在RDotNet.dll"。

有人可以帮帮我吗?提前谢谢......

The screenshot of the error

1 个答案:

答案 0 :(得分:2)

我在加载 dplyr 和其他R库时遇到了类似的问题。问题在于IIS和IIS Express在32位上的堆栈大小为256K,在64位操作系统上的堆栈大小为512 K here。 您可以通过以下方式解决这个问题:

1)创建一个具有更大堆栈大小的线程并在其中执行R.NET命令。例如:

Thread t = new Thread(MyMethodToDoRWork, 2500000 /*thread stack size of 2.5MB*/);

2)通过EditBin工具(Visual Studio附带)更改IIS或IIS Express进程的默认堆栈大小。请参阅示例here。我不推荐这样做,因为您将修改实际的IIS / IIS Express二进制文件。