WCF - Creating Endpoints in Code
Here is an example of how you can define a WCF Server in code without having to have the configuration in a config file.
Private Sub StartServiceFunction()
Dim host As ServiceHost
Dim tcpBaseAddr As Uri
tcpBaseAddr = New Uri(ReturnTCPUri())
Dim httpBaseAddr As Uri
httpBaseAddr = New Uri(ReturnHTTPUri())
Dim baseAddresses() As Uri = New Uri() {tcpBaseAddr, httpBaseAddr}
host = New ServiceHost(GetType(ChatService), baseAddresses)
Dim metadataBehavior As ServiceMetadataBehavior
metadataBehavior = New ServiceMetadataBehavior()
metadataBehavior.HttpGetEnabled = True
host.Description.Behaviors.Add(metadataBehavior)
Dim tcpBinding As NetTcpBinding
Dim mexBinding As System.ServiceModel.Channels.Binding
tcpBinding = New NetTcpBinding()
tcpBinding.ReliableSession.Enabled = True
tcpBinding.Security.Mode = SecurityMode.None
mexBinding = System.ServiceModel.Description.MetadataExchangeBindings.CreateMexTcpBinding()
host.AddServiceEndpoint(GetType(CMExpertAssistanceServer.IChat), tcpBinding, ReturnTCPUri())
host.AddServiceEndpoint(GetType(IMetadataExchange), mexBinding, "mex")
Try
host.Open()
Catch ex As Exception
m_oCMLog.SendLogEx(cmLogAPI.Callmedia.CMLog.cmLogType.cmLogError, ex.Message)
End
End Try
End Sub
Public Function ReturnTCPUri()
Dim sURI As String
Dim sIP, sPort As String
sIP = ConfigurationManager.AppSettings("BindIPAddress")
sPort = ConfigurationManager.AppSettings("TCPPort")
sURI = String.Format("net.tcp://{0}:{1}/chatservice", sIP, sPort)
Return sURI
End Function
Public Function ReturnHTTPUri()
Dim sURI As String
Dim sIP, sPort As String
sIP = ConfigurationManager.AppSettings("BindIPAddress")
sPort = ConfigurationManager.AppSettings("HTTPPort")
sURI = String.Format("http://{0}:{1}/CMChat", sIP, sPort)
Return sURI
End Function

