我正在为ASP.NET开发一个用于MATLAB函数的Web用户界面。我开始研究演示并坚持这样的问题。
我使用MATLAB 2010a中的deploytool创建了一个MyComponent.dll程序集,目标框架为3.5。该组件有一个函数GetKnot(),它返回一个数字。
function df = getKnot()
f = figure('Visible', 'off');
knot;
df = webfigure(f);
close(f);
end
然后我在visual studio 2008 sp1中制作了简单的webapp,只有一页Default.aspx。 我添加了对MWArray.dll,WebFiguresService.dll和MyComponent.dll的引用。 codeBehind是:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MyComponent;
using MathWorks.MATLAB.NET.WebFigures;
namespace MATLAB_WebApplication
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var myComponentClass = new MyComponentClass();
var x = myComponentClass.getKnot();
WebFigureControl1.WebFigure = new WebFigure();
}
}
}
当我在Visual Studio的开发Web服务器上运行此页面时 - 一切都很好,数字有效。
但是当我试图在我的本地iis 7.5上部署webfigure时,它运行在Win7 x32上 - iis app pool崩溃。系统事件日志中有一个条目“服务应用程序池的过程'Classic .NET AppPool'与Windows进程激活服务发生致命的通信错误。进程ID为'3676'。数据字段包含错误号6D000780”。当MyComponent实例化时会发生这种情况。
移动到IIS后我会忘记什么?
其他示例,如魔术方框控制台应用程序,运行完美,每个matlab组件实例化,但不在IIS环境中。
编辑:我使用Windows 7和MATLAB 2009b部署了一个虚拟机,并尝试了相同的示例。一切正常。 :(。也许是MATLAB 2010问题?
答案 0 :(得分:3)