zoukankan      html  css  js  c++  java
  • 修改在WIN7 64位服务调试32位DLL的方法

    转自 http://blog.sina.com.cn/s/blog_6ba6d89e01013uzz.html

    根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。
    云平台框架。
    上次在作业的时候遇到了一件蛋疼的事情。
    根据要求,需要建立一个WCF Service Library,由于我的机器是x64,考虑到兼容性,将工程编译属性调整为x86。在x64平台上调试依赖于x86的WCF服务

    在x64平台上调试依赖于x86的WCF服务

    然后我就欢乐的去调试了
    然后...就没有然后了...
    调试项目无法运行
     System.BadImageFormatException: Could not load file or assembly 'file:///C:\Users\celeron533\Dropbox\5041\Assignment2_Project\Airline2_Server\AirLineServiceLibrary\bin\x86\Debug\AirLineServiceLibrary.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    在x64平台上调试依赖于x86的WCF服务
    究其原因,我写的是一个dll文件,需要一个exe作为运行容器来调用,这VS2010中,这个临时容器由 WCF Service Host 来承担 Microsoft Visual Studio 10.0\Common7\IDE\WcfSvcHost.exe
    在安装VS的时候,安装程序侦测到当前系统是x64,所以给WcfSvcHost.exe 设定为64位,该程序无法调用32位的dll,所以会报错“incorrect format”
    1. 备份好原来的x64版本的WcfSvcHost.exe
    2. 打开VS命令行命令行(开始,程序,VS2010,VS工具,VS控制台)
      在x64平台上调试依赖于x86的WCF服务
    3. 通过命令切换到WcfSvcHost.exe所在文件夹
    4. 运行命令 corflags /32BIT+ /FORCE WcfSvcHost.exe
    5. 完成
    可以正常运行了在x64平台上调试依赖于x86的WCF服务

    若是想切换回原来的模式,可以还原文件或者改命令参数 

  • 相关阅读:
    找工作就上智联,效果真快,然而让我去的公司都是泡我呢
    只能面深度学习岗和算法岗,其他都不会
    2维矩阵前缀和技巧题目
    计算机基础背诵
    集合函数AVG,SUM,MAX,MIN
    集合函数COUNT
    修改删除数据记录
    多表查询
    查询数据表中的记录
    SQL基本语句(3) LOAD DATA INFILE
  • 原文地址:https://www.cnblogs.com/JYun/p/2749382.html
Copyright © 2011-2022 走看看