启动由Windows服务托管的WCF服务

时间:2016-09-13 19:46:23

标签: vb.net wcf

我有一个包含两个项目的解决方案。第一个是winform,它具有对第二个项目托管的WCF服务的服务引用。第二个是WCF服务库,其类型是控制台应用程序。

WCF服务库项目使用托管我的WCF服务的Windows服务。当我为winform运行.exe时,我得到以下异常:

  

没有可以接受消息的端点侦听

这显然是因为WCF服务没有被托管...所以我尝试运行服务库.exe并且我收到以下错误:无法从命令行或调试器启动服务

如果我在visual studio中启动服务库.exe,WCF测试客户端将托管我的WCF服务并运行winform .exe工作没有任何问题。但是,我希望能够从.exe中托管WCF服务..而且我不知道如何解决这个问题。

这是我的Windows服务的代码:

Imports System.ServiceProcess    
Imports System.Configuration.Install    

Public Class CalculatorService    
  Inherits ServiceBase       

  Public serviceHost As ServiceHost = Nothing    

  Public Sub New()   
    ' This call is required by the designer.

    InitializeComponent()    

    ' Add any initialization after the InitializeComponent() call.      

  End Sub     

  Protected Overrides Sub OnStart(ByVal args() As String)

    If serviceHost IsNot Nothing Then    
      serviceHost.Close()    
    End If    

    ' Create a ServiceHost for the CalculatorService type and
    ' provide the base address.    
    serviceHost = New ServiceHost(GetType(CalculatorService))    

    ' Open the ServiceHostBase to create listeners and start
    ' listening for messages.    
    serviceHost.Open()    
  End Sub    

  Protected Overrides Sub OnStop()

    If serviceHost IsNot Nothing Then    
      serviceHost.Close()    
      serviceHost = Nothing    
    End If    
  End Sub

  Public Shared Sub Main() 
     ServiceBase.Run(New CalculatorService)    
  End Sub    

End Class

启动对象是Sub Main(),当我尝试运行.exe时,计算器窗口服务已经安装并运行。

我做错了什么?我被困了

0 个答案:

没有答案