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

根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。

云平台框架。

上次在作业的时候遇到了一件蛋疼的事情。

根据要求,需要建立一个WCF Service Library,由于我的机器是x64,考虑到兼容性,将工程编译属性调整为x86。

究其原因,我写的是一个dll文件,需要一个exe作为运行容器来调用,这VS2010中,这个临时容器由 WCF Service Host 来承担 Microsoft Visual Studio 10.0\Common7\IDE\WcfSvcHost.exe

在安装VS的时候,安装程序侦测到当前系统是x64,所以给WcfSvcHost.exe 设定为64位,该程序无法调用32位的dll,所以会报错“incorrect format”

幸好在http://social.msdn.microsoft.com/Forums/en/wcf/thread/2e29a4aa-e587-43ef-bf50-329b7cd3eefb 找到了解决方案:

  1. 备份好原来的x64版本的WcfSvcHost.exe
  2. 打开VS命令行命令行(开始,程序,VS2010,VS工具,VS控制台)
  3. 通过命令切换到WcfSvcHost.exe所在文件夹
  4. 运行命令 corflags /32BIT+ /FORCE WcfSvcHost.exe
  5. 完成

可以正常运行了

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

解决方法:

1、找到WcfSvcHost.exe的所在路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

2、C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts,以管理员打开VS2013 x64 本机工具命令提示

3、运行命令:corflags /32BIT+ /FORCE WcfSvcHost.exe

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

时间: 2024-08-09 10:36:07

在x64平台上调试依赖于x86的WCF服务的相关文章

【原】在windows平台上调试vpcs

1.下载Cygwin32.2.下载vpcs源代码.3.解压vpcs源码,修改Makefile.cygwin文件 以下两行CFLAGS=-D$(OSTYPE) -D$(CPUTYPE) -Dcygwin $(HVOPT) -Wall -I.LDFLAGS=-static -lpthread -s -static-libgcc -lutil 修改成:CFLAGS=-D$(OSTYPE) -D$(CPUTYPE) -Dcygwin $(HVOPT) -Wall -g -I.LDFLAGS=-stati

如何在SAP云平台上使用MongoDB服务

首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序. 1. 使用命令行 cf marketplace查看当前SAP云平台的MongoDB的版本号:在我使用的SAP云平台上是v3.0-dev 使用如下命令行创建一个服务实例: cf create-service mongodb v3.0-dev mongo-service 2. 到例子程序的根目录下,使用命令mvn

关于wcf服务编译平台是x86, 运行平台是x64时,如何调试

关于调试CTDC项目中的的 wcf服务时注意事项: 因为wcf项目引用的的 x86的程序集,所以wcf生成的目标平台为x86.故在64系统上调试需要执行下面的脚本 具体操作步骤: 1. 进入目录:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 2. 执行下面指令:corflags /32BIT+ /Force WcfSvcHost.exe 3. 取消模式:corflags /32BIT- /Force WcfSvcH

x86平台转x64平台关于内联汇编不再支持的解决

x86平台转x64平台关于内联汇编不再支持的解决     2011/08/25   把自己碰到的问题以及解决方法给记录下来,留着备用!   工具:VS2005  编译器:cl.exe(X86 C/C++)  ml64.exe(X64 ASM64) 前提:X86下内联汇编是嵌在函数当中实现的 在X86平台下,可以轻松的在C/C++代码中嵌入汇编代码,称其为"内联汇编",使用"__asm{}"语法即可,比较简单,这里不做介绍.当你在X86平台下,由于性能和速度的要求,需

VS 本地调试 x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作” 问题解决

之前有一阵子发现Visual Studio 2012 的x64平台不能直接debug,总是报如下错误,查找了一下,得知VS的x64是建立在x86的远程调试上,而不是独立运行. 猜测就是远程调试上出了问题,但修改各种设置,重装软件,都没有用. 只有将x64改成x86平台,用不到远程调试机制,也就天下太平了.但是我的程序里调用的就是x64的库,没办法,将就过了一段不能调试的日子,后来不知道怎么的又好了,就稀里糊涂的把这问题给糊弄过去了. 直到这次想上外网查东西,登录Astrill SVN时,总是报错

记一次在linux 平台上的优化调试

Author:DriverMonkey Mail:[email protected] Phone:13410905075 QQ:196568501 测试平台:AM335X 优化前状态:采样速度  105次/S 优化目标:速度为 130次/S 以上(注:根据ADC的采样率理论上可以达到 330次/S) 优化步骤: 1)代码框架可分为四大模块(UI, 业务逻辑管理,设备管理,远程管理)共10个线程 模块间有项目依赖关系,不能一下全部停掉,先去掉一些辅助功能线程(如:按键扫描线程,远程命令处理线程等)

VS2012下X64平台嵌入汇编程序

VS2012在win32平台编译的时候可以很好的支持汇编语言的嵌入.建立一个控制台应用程序,选择空项目.项目建立好之后添加一个.cpp文件.在cpp文件中写入如下代码: [cpp] view plain copy print? #include <iostream> using namespace std; int  Add(int num1, int num2) { __asm { mov eax,num1 mov ecx,num2 add eax,ecx } } void main() {

Go语言在国产CPU平台上应用前景的探索与思考

http://www.chinaaet.com/article/3000087559 0 引言 CPU是电子产品的核心,代表着信息产业的发展水平.CPU发展至今已经有四十多年的历史了,实际就是Intel公司的发展历史[1].Intel的CPU和其兼容产品占领了PC的大半江山.我国CPU战略已经发展十余年,部分领域完全具有核心技术,产业化取得积极进展,但是与国际主流厂商Intel等仍存在较大差距.国产CPU由于受多方因素制约,单核性能并不高,在2000年左右所有的微处理器厂商都转向了多核微处理器的

龙芯GO!龙芯平台上构建Go语言环境指南

龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer.KenThompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言.Go语言最显著的特点是编码简洁迅速.支持高效并发和自动内存管理等.此外,Go语言还面向网络服务器.存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署.因此,Go语言受到了广大程序员的