我使用Mathematica .Net/Link platform来创建Web服务来格式化和计算数学问题。然而,我无法得到它的工作。Asp.Net应用程序中的Mathematica .Net/Link
我创建使用此代码是:
_Log.IpDebug("Starting the Kernel Link");
if (string.IsNullOrEmpty(_MathLinkArguments))
_InternelKernel = MathLinkFactory.CreateKernelLink();
else
_InternelKernel = MathLinkFactory.CreateKernelLink(_MathLinkArguments);
_Log.IpDebug("Kernel Link Started");
_InternelKernel.WaitAndDiscardAnswer();
的_MathLinkArguments
值是-linkmode launch -linkname \"C:\\Program Files\\Wolfram Research\\Mathematica\\7.0\\Math.exe\"
。
这段代码是从global.asax.cs文件的Application_Start
方法中调用的。
当它到达WaitAndDiscardAnswer()
调用它给服务器错误:
Error code: 11. Connected MathLink program has closed the link, but there might still be data underway.
注:与.NET /链路包(包括一个控制台应用程序和WinForms应用程序)给出的SampleCode工作。
编辑: 我复制使用Mathematica给出的控制台应用程序示例代码到一个asp.net页面,它给了我同样的错误第一负载,然后在后续加载它给了我:
Error code: 1. MathLink connection was lost.
EDIT2 : 我忘了提及,当我运行我的应用程序时打开procmon和任务管理器,我可以判断出Math.exe已经启动,但它立即退出,这使得这些错误代码变得完整无缺......但并不能解释为什么那事发生了。
如果没有指定_MathLinkArguments作品是不是从你的问题不清楚。你检查过_InternelKernel变量是否为空?我相信你知道linkname只是一个字符串,并不一定非常复杂。唯一的标识符是确定的。以下在你的Mathematica内核中运行kernel = LinkLaunch [ “C:\\ Program Files \\ Wolfram \ Research \\ Mathematica \\ 7.0 \\ MathKernel.exe”<> “-linkmode launch -linkname uniqueIdentifier123”] ;打印[ LinkRead [kernel]]; LinkClose [kernel]' – Sasha 2011-03-04 21:39:42
它无法使用_MathLinkArguments,但错误是它只是挂起并且从不加载页面。另外,当我在Mathematica中运行这段代码时,我得到'InputNamePacket [In [1]:=]' – 2011-03-04 21:45:24
您是否尝试创建一个与发布的代码等效的独立CS程序?它工作吗? – Sasha 2011-03-04 22:01:07