【发布时间】:2012-01-07 02:57:15
【问题描述】:
两年后,我重新开始实施 WCF 服务。我想让初学者配置一个超级简单的、免费的配置文件服务。我有下面的服务器代码。当我使用 svcutil 创建代理时,一切都很好。但是,当我尝试使用 ChannelFactory 自己实现客户端时,我一直被没有服务正在侦听的消息所困扰......错误在哪里?
客户
Module OnlineLicenceClientConsole
Sub Main()
Console.WriteLine("Press enter to connect...")
Console.ReadLine()
Dim factory As New ChannelFactory(Of IOnlineLicenceCommunication)(New BasicHttpBinding)
Dim address As New EndpointAddress("http://localhost:8015/Onlinelicence")
Dim client = factory.CreateChannel(address)
Console.WriteLine("Client running...")
Do While (True)
Dim computerID = Console.ReadLine()
Dim request = New LicenceRequest With {.ComputerID = computerID, .CustomerID = "X", .ServiceID = "Y"}
Console.WriteLine(client.GetLicence(request).StatusMessage)
Loop
End Sub
End Module
主人
Module OnlineLicenceServerConsole
Sub Main()
Dim baseAddress As New Uri("http://localhost:8015/OnlineLicence")
Dim host = New ServiceHost(GetType(OnLineLicenceCommunicator), baseAddress)
Dim serviceBehavior As New ServiceMetadataBehavior With {.HttpGetEnabled = True}
host.Description.Behaviors.Add(serviceBehavior)
host.AddServiceEndpoint(
GetType(IOnlineLicenceCommunication),
New BasicHttpBinding,
"OnlineLicenceCommunicator")
Try
host.Open()
Console.WriteLine("Service running")
Console.ReadLine()
Catch e As CommunicationException
Console.WriteLine("Fout: {0}", e.Message)
Console.ReadLine()
host.Abort()
Finally
host.Close()
End Try
End Sub
End Module
【问题讨论】: