我有一段代碼導致異常。 該異常僅被拋出一次,該場景無法被複制。但我仍然想要理解這個錯誤。 以下是代碼:System.ServiceModel.ServiceHost.AddServiceEndpoint構造函數導致異常拋出
1 Dim myHost As System.ServiceModel.ServiceHost = New ServiceHost(New ClientService())
2 myBinding = New NetTcpBinding(SecurityMode.None)
3 Dim clientAddress As String = "net.tcp://127.0.0.1:3500/Client"
4 myHost.AddServiceEndpoint(GetType(IClientService), myBinding, clientAddress)
IP地址僅用於舉例。在生產中,它是客戶機器的有效IP地址。 異常在#4行中引發。這裏是堆棧:
1 System.UriFormatException: Invalid URI: The hostname could not be parsed.
2 at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
3 at System.Uri..ctor(String uriString, UriKind uriKind)
4 at System.ServiceModel.ServiceHost.AddServiceEndpoint(Type implementedContract, Binding binding, String address, Uri listenUri)
5 at System.ServiceModel.ServiceHost.AddServiceEndpoint(Type implementedContract, Binding binding, String address)
問題:
爲什麼超載AddServiceEndpoint(類型implementedContract,有約束力,字符串地址,烏里listenUri)稱爲如果我只叫AddServiceEndpoint(類型implementedContract ,綁定綁定,字符串地址)?
什麼可能是該異常的可能原因?
謝謝。
編輯:
爲clientAddress串的實際的代碼是:
clientAddress = String.Format(My.Resources.UrlTemplate,ip.AddressList(0).ToString(), CInt(Int((1024 - 808 + 1) * Rnd() + 808)))
其中
Dim ip As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
我簡化了清晰度起見第一個代碼示例。 Resources.resx是生產代碼中的Embeded資源。
謝謝@carlosfigueira。我只是認爲msdn文檔會包含這些信息。至於第二點 - 請參閱我最近編輯的帖子。再次感謝。 – myroslav 2013-04-04 14:01:20