同样程序同样做法,在32位服务器上好用
到64位机器上就报如下错误了
未能加载文件或程序集“MWArray, Version=2.9.0.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f”或它的某一个依赖项。试图加载格式不正确的程序。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“MWArray, Version=2.9.0.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f”或它的某一个依赖项。试图加载格式不正确的程序。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[BadImageFormatException: 未能加载文件或程序集“MWArray, Version=2.9.0.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f”或它的某一个依赖项。试图加载格式不正确的程序。]C/s下64位好用,但B/S下asp.net应用项目中,就报上面的错误。
我的做法:在64位机下安装的matlab编译了.dll控件,
matlab原代码:
function y = mymagic( x )
%MYMAGIC Summary of this function goes here
%   Detailed explanation goes here
y=magic(x);end
asp.net核心代码:
   using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using MymagicPro;         
             int input = 3;
            MymagicPro.magicClass m = new magicClass();
            MWNumericArray x = new MWNumericArray(input);//创建Matlab数值数组对象
            MWArray[] argsout = new MWArray[1];
            MWArray[] argsin = new MWArray[] { x };
            m.mymagic(1, ref argsout, argsin);
            MWNumericArray y = argsout[0] as MWNumericArray;
   asp.netmatlab服务器function64位服务器

解决方案 »

  1.   

    在64位系统下对项目属性里的平台选择了X86。改为X64就可以了。http://www.ilovematlab.cn/thread-160339-1-1.html
      

  2.   

    感谢still_melody 的回答。是这样,我建立了一个项目,生成X64时,确定编译时过了,
    但asp.net应用程序就浏览不出来报错。
    我试过几种方法:
    (1)建立 一个调用matlab类(64位)的类项目,生成X64形式,然后再建立一个asp.net应用项目,生成X64形式,结果,asp.net应用项目过不去
    (2)建立 一个调用matlab类(64位)的类项目,生成X64形式,然后再建立一个asp.net应用项目,生成X86形式,结果,asp.net应用项目过去了,matlab那个MWArray控件又过不去
    (3)直接建立一个asp.net应用程序,结果也是上面情况
    (4)仍然是上面方面,用的是32位下编译的matlab 类,还是失败
    最后,我实在无能为力了。
      

  3.   

    64位和32 在iis设置就行了。 
    你情况很特殊, 你的iis能升级吗?
      

  4.   

    iis里设置对应的应用程序池,启用32位应用程序 =》True
      

  5.   

    感谢still_melody 的回答。是这样,我建立了一个项目,生成X64时,确定编译时过了,
    但asp.net应用程序就浏览不出来报错。
    我试过几种方法:
    (1)建立 一个调用matlab类(64位)的类项目,生成X64形式,然后再建立一个asp.net应用项目,生成X64形式,结果,asp.net应用项目过不去
    (2)建立 一个调用matlab类(64位)的类项目,生成X64形式,然后再建立一个asp.net应用项目,生成X86形式,结果,asp.net应用项目过去了,matlab那个MWArray控件又过不去
    (3)直接建立一个asp.net应用程序,结果也是上面情况
    (4)仍然是上面方面,用的是32位下编译的matlab 类,还是失败
    最后,我实在无能为力了
      

  6.   

    iis里设置对应的应用程序池,这个我没试过
    试下去
    如果好用,我会回来告诉大家
    大家有什么其它方法,继续留言这里。
    另外,我想知道怎么给大家分呢,我第一次用这里,还不会操作
      

  7.   

    感谢大家对我的帮助,这个问题已经解决。
    是在IIS先把asp.net部分的项目发布
    然后在VS的添加项目中,添加已有网站,选IIS,选上你在IIS上已经发布的网站就OK了
      

  8.   

    注意的地方就是,最好matlab的调用单独写在一个类中,
    然后从asp.net的项目中去调用这个类
      

  9.   

    回复:calmsky
    你好,麻烦你,你能把详细的解决方法说一下么?我也遇到和你一样的问题,谢谢啦~
    是在IIS先把asp.net部分的项目发布
    然后在VS的添加项目中,添加已有网站,选IIS,选上你在IIS上已经发布的网站就OK了