首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BadImageFormatException 遇到 WcfSvcHost 和 IIS WCF 主机

您好!您提到的 BadImageFormatException 是一个常见的 .NET 异常,通常发生在加载 32 位和 64 位不兼容的程序集时。

在 WCF 服务主机(WcfSvcHost)和 IIS 中承载 WCF 服务时,如果加载了不兼容的程序集,就可能会遇到 BadImageFormatException 异常。这通常是因为在 64 位进程中加载了 32 位程序集,或者在 32 位进程中加载了 64 位程序集。

为了解决这个问题,您可以尝试以下方法:

  1. 确保您的 WCF 服务和所有依赖程序集都是针对相同的平台(32 位或 64 位)编译的。
  2. 如果您在使用 IIS 承载 WCF 服务,请确保 IIS 应用程序池的设置与您的 WCF 服务匹配。例如,如果您的 WCF 服务是 32 位的,则应将应用程序池设置为允许 32 位应用程序运行。
  3. 如果您在使用 WcfSvcHost 承载 WCF 服务,请确保您使用正确的版本(32 位或 64 位)来运行该工具。
  4. 如果您在使用第三方库,请确保您使用的是正确的版本,并且它们与您的 WCF 服务兼容。

如果您仍然遇到问题,请提供更多详细信息,以便我们能够更好地帮助您解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

- 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 - 远程主机强迫关闭了一个现有的连接。...后来找到了一篇文章,说的是添加WCF引用的一个陷阱。里面提到的情形跟我遇到的一致,原来问题出在权限,难怪用webdevserver可以很正常的运行 。...具体可参考:http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/  WCF服务部署到IIS上,然后通过...web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。...1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。 ?

1.4K10

“无法从http:XXXXXX.svc?wsdl获取元数据”错误的解决方法

昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容,但无法进行处理。   - WSDL 文档包含无法解析的链接。  ...- 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。   - 远程主机强迫关闭了一个现有的连接。...后来找到了一篇文章,说的是添加WCF引用的一个陷阱。里面提到的情形跟我遇到的一致,原来问题出在权限,难怪用webdevserver可以很正常的运行。...原因就是IIS进程的用户没有访问Windows\Temp目录的权限。找到Temp目录,然后找到IIS_USER用户,授权即可。...具体可参考:http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/

3.4K20

使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务

上一篇中,使用控制台托管了WCF服务,但是如果想从PHPjava平台调用,必须将其托管到IIS中(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...IISWAS,如果没有,可以在控制面板--程序--打开或关闭Windows功能打开。     ...2.在IIS中托管WCF服务      在IIS默认网站中添加应用程序emp,并在高级设置中,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型中编辑IP地址主机名...在新建的虚拟目录对应的实际目录中,添加web.config文件,配置wcf服务终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管在IIS中的WCF服务 在PHP服务器中打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?

2K70

windowServer_windowsserver是什么

简介 AppFrabic托管功能 解决的问题 特性与功能 体系结构 IISWAS ASPNET WCFWF 运行时数据库 暂留持久化 托管承载 监控监视 管理API IIS Manage 托管功能...同时,由于按需激活进程回收,因此托管长期运行进程(例如,IIS WAS 中的工作流)十分具有挑战。如果应用程序要求,则状态暂留主机激活必须由开发人员明确配置。...IIS Manage   为了提供 WF WCF 服务的集中配置管理,AppFabric 提供了适用于 IIS Manager 中 WCF WF 服务的丰富的管理监控工具集。...通过 IIS 管理控制台提供的 WCF 配置选项 当前的 WCF 配置使用的是 WCF 服务配置编辑器工具 (SvcConfigEditor.exe),这对开发人员 IT 专业人员提出了挑战。...AppFabric 通过为 WCF WF 扩展熟悉且具有 IIS Manager 扩展的 IIS 管理控制台,来完成最常见的配置任务,以改进体验。

1.8K100

【翻译】WCF4.5:更少的配置ASP.NET更好的支持

WCF 4.5中配置文件只需要设置绑定的类型名称即可! 当然这导致了另一个问题:“我怎么知道这些设置是什么呢?”...因为IIS提供了很多内置的支持功能,比如身份验证,状态管理进程回收等。但在IIS下开发WCF服务仍然有一些限制,微软也正在解决这些问题。...WCF4.5通过允许服务按IIS的方式来进行身份认证(设置身份认证的方式为“继承自宿主InheritedFromHost”)除掉了此类型的BUG 不幸的的是这只是一个局部修复,如果IIS激活了多个身份验证类型...Ido Flatow认为HTTPS 版本是在为主机名做广告而不是访问WSDL的宿主名(host name),这些可能将成为使用web form时的问题。...可以在MSDN文档:WCF服务ASP.NET(查找PostAuthenticateRequest Event部分)找到相关内容。

55320

WCF IIS 部署错误处理

代码的编写上,把WebMethod特性改成了OperationContract,然后把方法分拆到契约接口实现方法。然后在部署上,不再依赖于IIS,但如果使用IIS,部署反倒麻烦了。...将WCF应用程序代码拷贝到IIS目录下,然后打开IIS管理器,将其转换为Application。访问时出现了错误。protocolMapping配置节有问题。 原因在于,WCF是.Net3.5?...针对此情况,新建4.0的应用程序池(管道模式要使用集成,不可以是经典模式),因为服务器是2008R2,所以IIS是7.5,所以.Net框架是4.0,所以把WCF应用更改为4.0,然后重新编译,然后修改应用程序池...网上查找答案,有部署SilverLight遇到类似的问题。但是配置目录权限(给IISUser甚至是匿名用户添加了FullControl的权限)后,仍然没有效果。...我创建了一个解决方案,其中包含几个类库以及WCF服务,后来将解决方案目录转换为应用程序,然后浏览,然后找到了服务,点击报错,问题在于WCF服务项目的目录没有被转换,正确的是转换WCF服务。

1.4K70

WCF 4.5:配置文件更小,对ASP.NET的支持更好

有了WCF 4.5,配置文件默认只会有绑定类型名称。 当然,这会引出相关的培训问题,“我怎么知道设定都是什么呢?” 为了回答这个问题,我们还会在配置文件中看到消息提示自动完成的功能。...尽管把WCF部署在Windows服务中是完全可以接受的,但是大多数开发者会在工作中继续使用IIS。为什么不呢,IIS提供了对很多特性的内建支持,像身份验证、状态管理以及过程回收等。...WCF 4.5让开发者可以把验证方式类型设置为“InheritedFromHost”,让服务遵从IIS的方式,从而避免了这类特定的缺陷。 遗憾的是,这只是部分的修正。...Ido Flatow提到,HTTPS的版本会发送机器名而不是用来请求WSDL的主机名。当使用web场的时候这会导致问题。 另一种缺陷在于WCF使用流数据的方式。...Ori认为, 当你把WCF服务部署在IIS中时,即便你不使用ASP.NET兼容模式,也会占用一些ASP.NET的管道,这在MSDN的文章《WCF 服务ASP.NET》中有记录(你需要查找关于PostAuthenticateRequest

88250

web未能加载文件或程序集“XXX”或它的某一个依赖项

异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。...可以使用下面的异常堆栈跟踪信息确定有关异常原因发生位置的信息。解决方法: 将应用程序生成为Any CPU就可以了 反之,如果系统是64位的Win7,就应该将新项目的生成目标平台改为x86 ?...综上: 64位的Win7 解决方案的生成目标平台设置为x86 32位操作系统 解决方案的生成目标平台设置为AnyCPU 另外一个网友的问题解决方法: 我遇到过这个问题有两次,不过环境不同。...解决方案:IIS——应用程序池——高级设置——启用32位应用程序 :true。 IIS10安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。...windows server 2016 64系统在安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。

1.4K20

web未能加载文件或程序集“XXX”或它的某一个依赖项

异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。...可以使用下面的异常堆栈跟踪信息确定有关异常原因发生位置的信息。...Win7,就应该将新项目的生成目标平台改为x86 综上: 64位的Win7 解决方案的生成目标平台设置为x86 32位操作系统 解决方案的生成目标平台设置为AnyCPU 另外一个网友的问题解决方法: 我遇到过这个问题有两次...解决方案:IIS——应用程序池——高级设置——启用32位应用程序 :true。 IIS10安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。...windows server 2016 64系统在安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。

1.9K20

WCF发布到IIS7问题的解决方案

操作系统:Windows7 旗舰版 开发环境:VS2010 .NET Framework4.0 ASP.NET4.0 第一步:检查Windows7中IIS是否安装了必要的组件 方法:控制面板->程序功能...第二步:检查IIS的配置 系统必备安装完成后打开IIS服务管理器,点默认网站,双击“处理程序映射”如下图 ?  检查一下下图中红色标注部分是否已经存在,否则WCF服务是无法调用的。...不幸如果没有找到这几个"兄弟"的话方法如下 安装注册WCF组件 WCF没有正确的在IIS中注册也许是导致看到错误页面的最常见原因。...如果你在安装Visual Studio后才安装IIS, 那么你在IIS托管WCF服务中,就很可能遇到这样的问题。...最后说说VS2010中WCF的发布遇到的问题 1.选择WCF项目右键选择发布在下图设置对话框中注意红色标注文本框的填写方法 如果直接发布到名为"Service"(这个根据要求自行定义名称)的网站不需要填写

1.2K10

将使用netTcp绑定的WCF服务寄宿到IIS7上全记录

摘要 在项目开发中,我们可能会适时的选择http或者tcp绑定的wcf服务,可以使用控制台来托管服务,也可以使用IIS来承载服务,由于IIS本身对于请求和异常的处理能力,使得我们可以省去很多开发精力而成为托管服务的首选...,之前我做的WCF服务时托管在控制台的,今天摸索了一下采用tcp绑定的wcf托管到IIS7的过程,分享一下,希望能帮助到想移植服务到IIS的朋友。...在创建虚拟目录时也许VS会提示需要安装IIS6的一些组件,那么我们按照提示打开”windows的更新安装“ 要将WCF的tcp绑定方式的服务host在IIS上,首先你需要启用这个功能 ?...其次,需要安装IIS6的兼容性管理工具 ?...等这些都做完之后你可以浏览一下服务了,但是有可能会遇到一个错误提示: 处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandl… 出现这个问题你需要确认两个问题

80820

WCF技术剖析系列总结篇

(阅读全文) 2、再谈IIS与ASP.NET管道 在2007年9月份,我曾经写了三篇详细介绍IIS架构ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制...(阅读全文) 4、基于IISWCF服务寄宿(Hosting)实现揭秘 通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IISASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于...概括地说,基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModuleSystem....)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side)模式ASP.NET兼容模式。...我意识到这可能WCF中用于判断服务寄宿方式的逻辑有关,于是我让这位朋友将相同的服务寄宿代码配置迁移到GUI程序或者Console应用中,看看是否正常。

95190

WCF系列教程之WCF服务宿主与WCF服务部署

如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文生存期的运行时环境当中,承载服务的环境,称之为宿主。WCF服务可以在支持托管代码的任意Windows进程中运行。...例如,一个将 WPF 用于其用户界面并作为 WCF 服务主机的对等协作客户端,允许其他客户端连接到它并共享信息。...通过使服务从 ServiceBase 类以及从 WCF 服务协定接口继承,将该服务同时实现为 Windows 服务 WCF 服务。...5、Internet信息服务(IIS) 在IIS中承载WCF服务,之前已经创建了契约层和服务层,这里就不创建了。 第一步:新建IISHost空Web应用程序,作为WCF服务的宿主 ?...ok,IIS作为宿主部署WCF服务成功!

1.2K80

菜菜从零学习WCF四(承载服务)

此环境适合开发可通过WCF支持的任何网络协议(HTTP 、net.tcp、net.pipenet.msmq)进行通信的WCF服务   --IIS承载的好处     -可像处理任何其他任何类型的IIS应用程序...(包括ASP.NET应用程序ASMX)一样,部署管理IIS中承载的WCF服务。     ...-IIS提供进程激活、运行状况管理回收功能以提高承载的应用程序的可靠性。     -像ASP.NET一样,ASP.NET中承载的WCF服务可以利用ASP.NET共享宿主模型。...-IIS中承载的WCF服务与ASP.NET2.0使用相同的动态编译模型,该模型简化了承载的服务的开发部署。     ...-当决定在IIS中承载WCF服务时,一定要记住IIS5.1IIS6.0仅限于HTTP通信。   --部署IIS承载的WCF服务  -1.要确保正确安装IISWCF以及WCF激活组建。 ?

93720

在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的

最近遇到的一个问题就是一个同事换了一个电脑,用的是X64的Windows 2008作为操作系统,要进行Oracle的数据库连接,所以也装了64位的Oracle客户端。...如果是控制应用项目或者WinForm项目可以正常连接Oracle,但是Web项目在程序中打开Oracle连接时,系统抛出了异常: 尝试加载 Oracle 客户端库时引发 BadImageFormatException...网上搜了一下,好像WeDev服务好像没有64位的,所以要解决这个问题,那么就不要使用这个服务作为Web服务,而使用IIS,因为IIS使用的是w3wp,在64位的操作系统中是64位的,所以可以正常使用64...具体设置如下: 这样设置后,每次运行就好以IIS来运行,不管是Web项目还是控制台应用项目或者WinForm项目,都会正常连接Oracle了。

63120
领券