关于一个64位和32位兼容的问题
我在一个64位的IIS上面publish一个工程,该工程用到了一个32编译的dll,但是运行的时候确是有错误,错误信息如下://////////////////////////////////////////////////////////////////
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
Source Error:
Line 159: {
Line 160: classifier = new Classifier();
Line 161: p = Init(dictPath);
Line 162: }
Line 163: // mutex.Close();
/////////////////////////////////////////////////////////////////
而我测试一下,写了一个简单的函数,生成一个64得dll,发现确是可以用,而把该函数变为32位编译,问题就出现上面的(Exception from HRESULT: 0x8007000B) 这样的错误。所以可以肯定是iis得64位和dll得32的不兼容问题。难道我真得要在我原来的那个工程上面重新编译64位么,因为原来工程以来很多lib文件,所以这样子重新编译64位比较麻烦,同样,我觉得64位 iis上面肯定可以兼容32位得dll这样的问题的,
所以在这里请教大家怎样处理这样的问题了。 --------------------编程问答-------------------- 学习,帮顶 --------------------编程问答-------------------- 没搞过,不过我记得有一个选项是“Any CPU”来着 --------------------编程问答-------------------- 编译的时候可以选择相应的CPU的,如果编译的时候选择了用64位编译,32位上面应该是用不了的 --------------------编程问答-------------------- 32位的dll如果你没有源代码就没戏了。要么你把iis运行在32位的环境下。要么你写一个Remoting服务,编译成32位的,然后WEb通过Remoting访问这个服务。
补充:.NET技术 , .NET Framework