当前位置:  开发笔记 > 运维 > 正文

如何摆脱VS2008中的"目标程序集不包含服务类型"错误消息?

如何解决《如何摆脱VS2008中的"目标程序集不包含服务类型"错误消息?》经验,为你挑选了3个好方法。

我有一个Client/Server wcf应用程序

我的可执行文件没有定义任何内容ServiceContract,它甚至没有引用System.ServiceModel(而是引用了包含服务器连接逻辑的程序集)

我有另一个程序集,由我的EXE引用,其中包含一个ServiceContract.

它曾经工作得很好.昨天,我已经玩了很多我的项目设置(部分信任,完全信任,部署设置等),现在,每次我启动我的客户端时,我都有以下消息框:

Microsoft WCF服务主机
目标程序集不包含任何服务类型.
您可能需要调整此程序集的代码访问安全性策略.

然后VS冻结1分钟,最终让我像往常一样调试我的程序.

我发现了一个关于这个问题的帖子,但解决方案不适用于我的情况.有任何想法吗?



1> Brann..:

它总是那样.你搜索了2个小时,最终你最终在SO上发布,5分钟后,你找到了答案.

在定义项目属性的WCF选项选项卡中ServiceContract, 有一个复选框,标记为"在同一解决方案中调试另一个项目时启动WCF服务主机",我取消选中该复选框.

我不知道它是如何被检查的.

无论如何,这解决了我的问题.有关此项目的设置,请参阅MSDN参考.


@Jonathan:我的赌注是你没有看到正确项目的属性.您需要选择项目*定义*合同; 不是实现它的人,也不是调用它的人.

2> bpeikes..:

以防万一其他人正在寻找答案,如果您碰巧App.config在项目中有一个具有节的类库的文件,则可能会出现此错误的另一个原因.

我将服务代码移出了一个项目,该项目是一个可执行文件到另一个项目,但不小心留下了旧App.config文件.我的新项目是一个以编程方式配置并启动WCF的Console应用程序,但由于旧App.config文件位于引用的程序集中,即使在调试Console应用程序时,我也会得到那个神秘的对话框.

因为我没有意识到VS调试器检查配置了WCF服务的App.config的所有引用程序集,所以花了大约12个小时来跟踪这个.



3> 小智..:

要确定具有此问题的项目,请在项目文件中找到字符串3D9AD99F-2412-4246-B90B-4EAA41C64699.

例: {3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

然后在同一解决方案中调试另一个项目时关闭项目选项"WCF选项/启动WCF服务主机"

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有