我最近创建了一个 WCF 服务 (dll) 和一个服务主机 (exe)。我知道我的 WCF 服务工作正常,因为我能够成功地将服务添加到 WcfTestClient。
但是,当我从服务主机 (exe) 使用 WCF 时,我似乎遇到了问题。我可以向我的服务主机 (exe) 添加对 WCF (dll) 的引用,并为 exe 创建必要的组件;例如服务安装程序、服务主机和app.config,编译然后最后使用InstallUtil安装exe。但是,当我尝试在 Microsoft 管理控制台中启动该服务时,该服务在启动后立即停止。
所以我开始调查究竟是什么导致了这个问题,并从事件查看器中的应用程序日志中发现了这个错误。
描述:
无法启动服务。System.InvalidOperationException:服务“服务”的应用程序(非基础设施)端点为零。这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在服务元素中没有定义端点。
这个错误实际上是在OnStart
; 我的 exe,当我执行这个调用时ServiceHost.Open()
。我看过很多其他人遇到这个问题的帖子,但是大多数人(如果不是全部)声称服务名称或合同;命名空间和类名,没有被指定。我在配置文件中检查了这两个条目;在 exe 和 dll 中,它们完全匹配。我让办公室里的其他人在我身后仔细检查,以确保我没有在某一时刻失明,但当然他们得出了与我相同的结论,即一切看起来都是正确指定的。我真的对此时发生的事情感到迷茫。谁能帮我解决这个问题?
可能发生这种情况的另一件事是 app.config 从未被读取;至少不是我认为应该阅读的那本书。这可能是问题吗?如果是这样,我该如何解决这个问题。再次,任何帮助将不胜感激。