我使用的是VS2013,Matlab 2015Ra和IIS 10.Net框架是4.5.2,EF是6. Matlab 2015Ra,VS2013和IIS在Windows 10上也是64位,這也是64位。我將MatLab腳本編譯爲網絡程序集。當我使用開發服務器,程序沒有錯誤工作正常,而當它部署在IIS程序失敗與此異常消息執行MATLAB代碼:IIS上的matlab代碼不起作用
MATLAB的運行實例無法初始化 SEGV - 嚴重錯誤
描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
異常詳細信息:System.ApplicationException:MATLAB的運行實例無法初始化 SEGV - 嚴重錯誤
完整的堆棧跟蹤是:
[ApplicationException: The MATLAB runtime instance could not be initialized
segv - SEVERE ERROR] MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary) +282
[Exception: The MATLAB runtime instance could not be initialized]
MathWorks.MATLAB.NET.Utility.MWMCR..ctor(String componentId, String componentPath, Stream embeddedCtfStream, Boolean isLibrary) +736
BuildCrop.Cropper..cctor() +390
[Exception: MWArray assembly failed to be initialized]
BuildCrop.Cropper..ctor() +43
EMS.Controllers.AdministratorController.Test_CreateCrop() +186
lambda_method(Closure , ControllerBase , Object[]) +87
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext, IDictionary`2 parameters) +229
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +39
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +67
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod (IAsyncResult asyncResult)+42
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +72
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
System.Web.Mvc.Async.AsyncControllerActionInvoker. EndInvokeActionMethodWithFilters (IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +38
System.Web.Mvc.Async.<>c__DisplayClass21.
<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +186
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction (IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +65
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +44
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +65
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication. IExecutionStep.Execute() +399
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157
我已經看過了各種解決方案和文章,也嘗試過由Leon提出的解決方案https://www.mathworks.com/matlabcentral/answers/29604-issues-with-iis-6-and-matlab-runtime和L.Mar在http://do-the-right-things.blogspot.com.au/2011/06/caveat-in-using-matlab-dll-in-aspnet.html
我還增加了IIS中的server.scripttimeout,但同樣的錯誤messa ge出現。
PS:Matlab安裝在服務器上,dll是從相同的Matlab創建的。
通常像MatLab這樣的額外程序會使用某種類型的運行時庫,如果您沒有安裝該程序則無法正常工作 - 例如,它可能需要visual C++運行時庫2015.請檢查額外的庫是否需要它並只安裝它。 – Aristos
我檢查了我的系統安裝了MS Visual C++ 2015(x86)。這是你所指的同一個運行時間。我也遵循 並清除了我係統中的緩存。仍然沒有工作。如果有人知道這一點。 –
whisps11
我不知道它可能需要什麼運行時庫 - 這是你需要找出0,如果在這裏的情況下 – Aristos