将WCF服务添加到项目中

时间:2011-05-09 03:32:27

标签: c# winforms wcf

我有一个C#WinForms项目,它包含一些我在项目中创建的WCF服务定义文件,方法是添加标准类(不使用Add Item> WCF Service)。

该项目包含一些依赖项,需要我为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文件中定义的服务? (我认为如果我在定位所有CPU时将服务添加到WCF服务配置编辑器,我可以在此后进行任何修改,无论目标是什么)

1 个答案:

答案 0 :(得分:0)

调试时,请查看异常详细信息。根据您的描述,我猜您将在融合日志中出现程序集加载错误,因为查看默认位置无法满足WCF服务的依赖性。

例如,假设你引用的是MrCritter.MyService.dll,它定义了一个WCF服务并依赖于log4net或nHibernate之类的东西。只要这些依赖项中没有任何内容泄漏到WCF主机中(例如返回ILog)是的,您将能够编译正常但在尝试实例化服务类时会抛出ReflectionTypeLoadException如果这些依赖项不是它可以找到的地方(例如在执行目录中,在GAC等)。