2010-05-31 5 views
2

Я разрабатываю веб-интерфейс для функций MATLAB с помощью ASP.NET. Я начал изучать демоверсии и застрял с такой проблемой.MATLAB Builder NE crash apppool on IIS 7.5

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

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

Тогда я сделал простой webapp в 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 Web сервер Studio`s развития - все это хорошо, фигура работает.

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

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

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

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

ответ

3

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

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

  1. Создать переменную окружения с именем MA TLAB_PREFDIR и укажем на каталог, в котором служба NETWORK SERVICE имеет доступ на запись. Или,

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

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

+0

Вам больше не нужно надеяться. Это было очень полезно. Спасибо – Mariusz

+0

Согласно веб-сайту MatWorks настройка переменной MATLAB_PREFDIR может иметь несколько побочных эффектов и не рекомендуется, если это абсолютно необходимо: http://uk.mathworks.com/matlabcentral/answers/93696-how-do-i-change -The-Matlab-предпочтения-каталог расположение – Mariusz

 Смежные вопросы

  • Нет связанных вопросов^_^