我有一个包含两个项目的解决方案。第一个是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时,计算器窗口服务已经安装并运行。
我做错了什么?我被困了