Windows 服务中托管的 WCF 错误

发布于 2024-11-06 16:23:20 字数 524 浏览 0 评论 0原文

我有一个 VB 中的 WCF,它将托管在 Windows 服务中。我管理了安装程序,因此该服务实际上已安装。但是,当我尝试启动该服务时,出现以下错误:

本地计算机上的服务已启动 然后停了下来。部分服务停止 如果他们没有工作可自动完成 例如,执行性能日志 和警报服务。

检查事件查看器给我以下信息:

服务无法启动。 System.ArgumentException:ServiceHost 仅支持类服务类型。
在 System.ServiceModel.Description.ServiceDescription.GetService(类型 服务类型)
在 System.ServiceModel.ServiceHost.CreateDescription(IDictionary`2& 已实施的合同)........................

有人知道发生了什么事吗?谢谢!

I have a WCF in VB which is to be hosted in a Windows Service. I managed the install program so the service actually installs. But, when I try to start the service, I get the following error:

The service on Local Computer started
and then stopped. Some services stop
automatically if they have no work to
do, for example, the Performance Logs
and Alerts service.

Cheking the Event Viewer gives me the following:

Service cannot be started.
System.ArgumentException: ServiceHost
only supports class service types.
at
System.ServiceModel.Description.ServiceDescription.GetService(Type
serviceType)
at
System.ServiceModel.ServiceHost.CreateDescription(IDictionary`2&
implementedContracts).........

Anybody have any ideas what's going on? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

漫雪独思 2024-11-13 16:23:20

ServiceHost 构造函数必须是服务契约的具体实现。

听起来您正在传递接口而不是服务实现。

The ServiceHost constructor must be concrete implementation of service contract.

It sounds like you are passing in the Interface rather than the service implementation.

尛丟丟 2024-11-13 16:23:20
  svh = new ServiceHost(typeof(MCWCFService.MCManagementService));
  svh.AddServiceEndpoint(
          typeof(MCWCFService.IMCManagementService),
          new NetTcpBinding(),
          "net.tcp://192.168.0.2:8011");
  svh.Open();

创建 ServiceHost 时使用类名称 - 在上面它是 MCManagementService。在端点中,使用接口 - 在上面它是 IMCManagementService。

  svh = new ServiceHost(typeof(MCWCFService.MCManagementService));
  svh.AddServiceEndpoint(
          typeof(MCWCFService.IMCManagementService),
          new NetTcpBinding(),
          "net.tcp://192.168.0.2:8011");
  svh.Open();

When creating the ServiceHost use the Class name - in the above it is MCManagementService. In the endpoint, use the interface - in the above it is IMCManagementService.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文