C#调用matlab时,类型初始值设定项引发异常,如何解决?

## 错误来由
 

由于项目需要,在.NET Framework web api接口程序中写了一个接口(版本4.7.2),引用了由matlab compiler生成的dll文件,
在本机调试的过程中,也遇到了一些x64、x86的问题,也顺利的解决了,但是发布到服务器上IIS部署之后,调用该接口就会报错。
**错误信息贴在文章的最后!**



### 所涉及到的dll文件的信息

涉及到的dll文件的信息
dll文件名类名方法名称说明
SavePictureByDeformationClass1SavePictureByDeformation无  

## 自我分析的过程

  • - 1、在网上查了好多资料,都没有发现太相似的问题,我这边matlab dll是由matlab R2020a版本生成的dll文件,我所用的编辑器是VS2019,
  • - 2、在服务器上我也安装了对应版本matlab R2020a run time(9.8运行时)。但是也没有效果
  • - 3、发布版本我分别设置为Any CPU、x64、x86,但都是同样的报错

## 内心想法

  • - 1、是不是安装的matlab运行时没有起作用?如何让其起作用,环境变量需要做处理吗?
  • - 2、是不是服务器上也需要安装matlab对应版本的正式版,只有一个run time运行时不起作用?

**有没有xdm来一起讨论一下啊,或是哪位佬看到了,帮忙解解惑啊,不胜感激**
**有没有xdm来一起讨论一下啊,或是哪位佬看到了,帮忙解解惑啊,不胜感激**
**有没有xdm来一起讨论一下啊,或是哪位佬看到了,帮忙解解惑啊,不胜感激**


### 错误信息为:

{
    "Message": "出现错误。",
    "ExceptionMessage": "“SavePictureByDeformation.Class1”的类型初始值设定项引发异常。",
    "ExceptionType": "System.TypeInitializationException",
    "StackTrace": "   在 SavePictureByDeformation.Class1..ctor()\r\n
    在 BridgeExpoWebApi.Controllers.summaryController.PostStartCalculate(Object req) 位置
    E:\\BridgeExpoWebApi\\Controllers\\summaryController.cs:行号 104\r\n
    在 lambda_method(Closure , Object , Object[] )\r\n
    在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)\r\n
    在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n
    ---    引发异常的上一位置中堆栈跟踪的末尾 ---\r\n
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
    在 System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n
    --- 引发异常的上一位置中堆栈跟踪的末尾 ---\r\n
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
    在 System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n
    --- 引发异常的上一位置中堆栈跟踪的末尾 ---\r\n
    在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
    在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n
    在 System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()",
    "InnerException": {
        "Message": "出现错误。",
        "ExceptionMessage": "“MathWorks.MATLAB.NET.Utility.MWMCR”的类型初始值设定项引发异常。",
        "ExceptionType": "System.TypeInitializationException",
        "StackTrace": "   在 SavePictureByDeformation.Class1..cctor()",
        "InnerException": {
            "Message": "出现错误。",
            "ExceptionMessage": "Trouble initializing libraries required by .NET Assembly.\n",
            "ExceptionType": "System.Exception",
            "StackTrace": "   在 MathWorks.MATLAB.NET.Utility.MWMCR..cctor()"
        }
    }
}


 


### 请求时的报错截图

 2021-11-05 11:30:04 星期五

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值