2011-05-09 133 views
4

我有一个C#WinForms项目,其中包含一些通过添加标准类(不使用添加项目> WCF服务)在项目中创建的WCF服务定义文件。将WCF服务添加到项目

该项目包含一些依赖关系,需要我为x86处理器构建项目。

如果我使用WCF服务配置编辑器编辑app.config文件并尝试使用“创建新服务...”向导,然后浏览到项目EXE文件(在调试文件夹中),我得到一个错误(这是我读过的,因为我针对x86处理器):

Could not load file or assembly 'EXE_FILE_NAME' or one of its dependencies. An attempt was made to load a program with an incorrect format.

因此,在改变目标到所有CPU,再编译该项目,然后试图创建服务再次在WCF服务配置编辑器中,我现在得到一个不同的错误:

Could not load file or assembly 'SOLUTION_NAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

(为了澄清,针对所有的CPU时,我仍然可以编译项目,但是在运行时获取的错误由于依赖)

是任何人能帮助我解决这个问题,所以我可以添加服务使用WCF服务配置编辑器中的向导在app.config文件中定义? (我认为,如果我将服务添加到WCF服务配置编辑器中,则在定位所有CPU时,无论目标如何,我都可以进行任何修改)

+0

这听起来像你正在尝试与WCF服务交互,但没有使用“添加服务引用”对话框。它是否正确?如果是这样,为什么你不使用内置工具来做到这一点? – IAmTimCorey 2011-05-09 03:35:25

+0

是的,我没有使用“添加服务参考”。我有在WinForms项目中定义的服务,但我从另一个项目中复制了代码(我不希望它们链接)。但是,当我尝试使用'WCF服务配置编辑器'配置WCF服务时(它在右键单击app.config文件时位于上下文菜单中)时,服务不可用于配置。所以我试图在WCF编辑器中使用向导添加它们。我不想在另一个项目中引用服务。 – ChrisAU 2011-05-09 03:41:52

+0

所以,如果我正确理解你,你将WCF服务项目(实际代码,项目文件等)添加到你的新解决方案中。虽然它可能不是严格相关的,但你为什么要这样做? WCF服务(以及一般OO)的要点是您可以设计一次并部署它供所有人使用。看起来你正在为自己创造一个头痛的问题,以便做一些对我没有意义的事情。如果你有一个很好的理由(我确信可以有一个理由),不要费心去向我辩护,只是告诉我“是的,我们想过了”,它会很好。 – IAmTimCorey 2011-05-09 03:46:18

回答

0

调试时,查看异常详细信息。根据你所描述的我的猜测是,你将在融合日志中发生程序集加载错误,因为通过查找默认位置无法满足WCF服务的依赖关系。

举个例子,你说的是引用MrCritter.MyService.dll,它定义了一个WCF服务并且依赖于诸如log4net或nHibernate之类的东西。只要这些依赖项没有泄露到WCF主机中(例如返回一个ILog),那么你可以编译好但尝试实例化服务类时会抛出ReflectionTypeLoadException,如果这些依赖项不在某处它可以找到(例如在执行目录中,在GAC等中)。

+0

此外,我已经回答了另一个问题,可以解决您的问题,如果这是我在这里确定的: http://stackoverflow.com/questions/18942832/how-can-i-dynamically-reference-an-装配的是,长相换另一组装/ 18943200 – nathanchere 2013-09-29 01:33:08

相关问题