我有一个Client/Server wcf应用程序
我的可执行文件没有定义任何内容ServiceContract
,它甚至没有引用System.ServiceModel
(而是引用了包含服务器连接逻辑的程序集)
我有另一个程序集,由我的EXE引用,其中包含一个ServiceContract
.
它曾经工作得很好.昨天,我已经玩了很多我的项目设置(部分信任,完全信任,部署设置等),现在,每次我启动我的客户端时,我都有以下消息框:
Microsoft WCF服务主机
目标程序集不包含任何服务类型.
您可能需要调整此程序集的代码访问安全性策略.
然后VS冻结1分钟,最终让我像往常一样调试我的程序.
我发现了一个关于这个问题的帖子,但解决方案不适用于我的情况.有任何想法吗?
它总是那样.你搜索了2个小时,最终你最终在SO上发布,5分钟后,你找到了答案.
在定义项目属性的WCF选项选项卡中ServiceContract
,
有一个复选框,标记为"在同一解决方案中调试另一个项目时启动WCF服务主机",我取消选中该复选框.
我不知道它是如何被检查的.
无论如何,这解决了我的问题.有关此项目的设置,请参阅MSDN参考.
以防万一其他人正在寻找答案,如果您碰巧App.config
在项目中有一个具有
节的类库的文件,则可能会出现此错误的另一个原因.
我将服务代码移出了一个项目,该项目是一个可执行文件到另一个项目,但不小心留下了旧App.config
文件.我的新项目是一个以编程方式配置并启动WCF的Console应用程序,但由于旧App.config
文件位于引用的程序集中,即使在调试Console应用程序时,我也会得到那个神秘的对话框.
因为我没有意识到VS调试器检查配置了WCF服务的App.config的所有引用程序集,所以花了大约12个小时来跟踪这个.
要确定具有此问题的项目,请在项目文件中找到字符串3D9AD99F-2412-4246-B90B-4EAA41C64699.
例:
然后在同一解决方案中调试另一个项目时关闭项目选项"WCF选项/启动WCF服务主机"