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