Pour l'un de mes projets, j'avais besoin d'intégrer une page .NET avec un appel externe à un processus MATLAB. Pour ce faire (sans dépenser d'argent), j'ai créé un fichier batch à appeler par la page .NET elle-même (ASP.NET MVC 3, si cela a de l'importance) qui contient essentiellement une ligne - celle qui permet de lancer MATLAB et d'exécuter ce processus.
La fin du processus proprement dit crache des informations dans un fichier texte, puis ferme MATLAB. Lorsque la page .NET voit que le fichier a été créé, elle le saisit et effectue des calculs basés sur les données trouvées dans ce fichier. Ce processus fonctionne parfaitement sur ma machine locale et lorsque je l'exécute depuis VS 2012 (en mode débogage) sur le serveur.
La partie amusante vient avec le déploiement de ce site. J'ai réussi à déployer mon site sur Internet, et tout fonctionne bien, sauf pour ce processus. Il semble qu'il ne fonctionne pas du tout. Le répertoire qui contient ce fichier batch possède toutes les autorisations nécessaires (IUSR et IIS_IUSRS), mais il ne semble pas s'exécuter du tout.
Quelqu'un peut-il me dire comment faire pour que ce fichier batch s'exécute correctement dans une page Web hébergée sur IIS 7.5 ? Et oui, je sais que ce n'est pas la meilleure des idées du point de vue de la sécurité, mais j'ai juste besoin de le faire.
EDIT : Voici le code pour appeler le processus :
var matlabProcess = new Process {
StartInfo = {
FileName = "C:\\Program Files\\MATLAB\\R2012a\\bin\\WebCall.bat",
Arguments = string.Format("{0} {1}", seeds, weights)
}
};
matlabProcess.Start();
Le fichier batch contient les éléments suivants :
cd\
cd progra~1\MATLAB\r2012a\bin
start matlab -nosplash -nodesktop -minimize -r WebCall(%1,%2)
EDIT : Un de mes amis a suggéré que la raison de cet échec est qu'il n'y a pas de gestionnaire sur IIS pour un fichier batch, et donc IIS n'a aucune idée de comment exécuter ce fichier. Si c'est le cas, quelqu'un peut-il me dire comment créer un mappage de gestionnaire approprié afin que je puisse voir si sa solution est correcte ?
Merci.