MATLAB Builder NE аварийный пул приложений на IIS 7.5 - PullRequest
2 голосов
/ 31 мая 2010

Я разрабатываю веб-интерфейс для функций MATLAB с ASP.NET. Я начал с изучения демо и застрял с такой проблемой.

Я создал сборку MyComponent.dll с deploytool из MATLAB 2010a, целевой фреймворк - 3.5. Этот компонент имеет одну функцию GetKnot (), которая возвращает фигуру.

function df = getKnot()
    f = figure('Visible', 'off');
    knot;
    df = webfigure(f);
    close(f);
end

Затем я сделал простое веб-приложение в visual studio 2008 sp1, с одной страницей 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 - все в порядке, рисунок работает.

Но когда я пытаюсь развернуть webfigure на моем локальном iis 7.5, который работает на Win7 x32, - происходит сбой пула приложений iis. В журнале системных событий есть запись «Пул приложения, обслуживающего процесс,« Classic .NET AppPool »столкнулся с фатальной ошибкой связи со службой активации процессов Windows. Идентификатор процесса был 3676. Поле данных содержит номер ошибки 6D000780». Это происходит, когда MyComponent создается.

Что я мог забыть, когда перешел на IIS?

Другие примеры, такие как консольное приложение «Магический квадрат», работают отлично, и каждый компонент Matlab создается, но не в среде IIS.

Редактировать: я развернул виртуальную машину с Windows 7 и MATLAB 2009b и попробовал тот же пример. Все отлично работает :(. Может, это выпуск MATLAB 2010?

1 Ответ

3 голосов
/ 15 января 2011

Я столкнулся с точно такой же проблемой (MCR сбой AppPools в Windows Server 2008). Кажется, это проблема между MCR и IIS 7. После обращения в службу поддержки Mathworks они сообщили мне, что это вызвано ошибкой в ​​MCR (в отношении разрешений удостоверения AppSool NetworkService). Я получил следующие предложения:

Чтобы обойти эту проблему, вы можете использовать один из следующих 2 шагов:

  1. Создайте переменную среды с именем MATLAB_PREFDIR и дайте ей указывать на каталог, где NETWORK SERVICE имеет доступ для записи. Или

  2. Создайте новый пул приложений, который будет работать под идентификатором «LocalSystem» (см. «Дополнительные настройки ...» пула приложений). Затем настройте приложение для использования этого пула приложений («Основные параметры ...» вашего приложения).

Я применил второе предложение, и оно исправило мою проблему. Я надеюсь, что это поможет кому-то еще, столкнувшемуся с той же проблемой.

...