Je suis en train de développer une interface utilisateur web pour les fonctions MATLAB avec ASP.NET. J'ai commencé par étudier les démos et je me suis heurté à ce problème.
J'ai créé un assemblage MyComponent.dll avec deploytool à partir de MATLAB 2010a, cadre cible - 3.5. Ce composant possède une fonction GetKnot() qui renvoie une figure.
function df = getKnot()
f = figure('Visible', 'off');
knot;
df = webfigure(f);
close(f);
end
J'ai ensuite créé une webapp simple dans visual studio 2008 sp1, avec une seule page Default.aspx. J'ai ajouté des références à MWArray.dll, WebFiguresService.dll et MyComponent.dll. Le codeBehind est le suivant :
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();
}
}
}
Lorsque j'exécute cette page sur le serveur web de développement de Visual Studio - tout va bien, la figure fonctionne.
Mais lorsque j'essaie de déployer webfigure sur mon iis 7.5 local qui fonctionne sous Win7 x32 - le pool d'applications iis se bloque. Il y a une entrée dans le journal des événements système "Un processus servant le pool d'applications 'Classic .NET AppPool' a subi une erreur de communication fatale avec le service d'activation de processus Windows. L'identifiant du processus est '3676'. Le champ de données contient le numéro d'erreur 6D000780". Cela se produit lors de l'instanciation de MyComponent.
Qu'est-ce que je pourrais oublier lors du passage à IIS ?
D'autres exemples, comme l'application console magic square, fonctionnent parfaitement, et chaque composant matlab s'instancie, mais pas dans l'environnement IIS.
Edit : J'ai déployé une machine virtuelle avec Windows 7 et MATLAB 2009b, et j'ai essayé le même exemple. Tout fonctionne bien :(. Peut-être est-ce un problème lié à MATLAB 2010 ?