happmaoo 发表于 2013-1-28 20:29:41

[RemotingFAQ]Load Remoting得到BadImageFormatException

<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe><div class="postText">

Loading a Remoting Host On IIS

得到BadImageFormatException异常

            Version

                                    Date

                                    Creator

                                    Description

                              1.0.0.1

                                    2006-4-24

                                    郑昀@Ultrapower

                                    草稿

                  

继续阅读之前,我们假设您熟悉以下知识:

n Remoting

n Remoting from IIS Hosted component

[现象]

首先,这种情况发生在以下特殊情形:

服务器端把Remoting Objects“宿主(Host)”在IIS中;

客户端激活远端Remoting Objects的调用方则得到了这个异常“BadImageFormatException”。



比如浏览Remoting对象的URL:

http://localhost/MyHelloServer/Hello.soap?wsdl

立即得到了这样的错误提示:

            IIS提示信息

                              System.BadImageFormatException: 文件“MyHelloServer”的格式无效。
            文件名: “MyHelloServer”
            

                  

需要特别指出的是,这种情况还有两个关联条件:

l Remoting服务器端是用VS.NET 2005编译的。

l 你的服务器环境中,既有dotNet framework 1.1,又有dotNet framework 2.0。

[分析]


综上所述,往往人们就开始怀疑自己的编译是不是有问题,或者虚拟目录的权限问题。

但是,当你排除了这两个疑点之后,你应该还要想起一件事:

这种事情是不是和你的部署环境有关系。



默认情况下,如果你的机器环境中既有dotNet framework 1.1(通常是1.1.4322);又有dotNet framework 2.0 (通常是2.0.50727)。

那么当你在IIS管理器中新建一个虚拟目录的话,默认使用ASP.NET V1.1版本。如下图所示:
http://blog.csdn.net/images/blog_csdn_net/zhengyun_ustc/36244/r_defaultASPNETv11.JPG






而你的Remoting Objects却是用dotNet framework 2.0编译出来的。在这种情况下,难怪IIS告诉你“文件“MyHelloServer”的格式无效”。



[解决]


综上所述,请修改你的虚拟目录的ASP.NET version为2.0。

页: [1]
查看完整版本: [RemotingFAQ]Load Remoting得到BadImageFormatException