Вы можете попытаться сделать веб-запрос, который проверяет wsdl веб-службы. Это не гарантия, но в большинстве случаев, если служба будет обслуживать wsdl, она также будет выполнять функцию. Вот один из них, который я написал, чтобы проверить базовую доступность службы.
Dim _streamReader As StreamReader
Dim responseString As New StringBuilder()
_streamReader = New StreamReader(Me.Response.GetResponseStream())
responseString.Append(_streamReader.ReadToEnd())
_streamReader.Close()
_streamReader = Nothing
If responseString.ToString().Contains("<wsdl:definitions") AndAlso _
responseString.ToString().Contains("</wsdl:definitions>") Then
wsdlVerified = True
Else
Throw New Exception("The response did not generate valid wsdl.")
End If
Где свойства для этого класса обслуживают код выше:
Public Property Url() As String
Get
Return _url.Trim()
End Get
Set(ByVal value As String)
_url = value.Trim()
End Set
End Property
Public ReadOnly Property Request() As System.Net.HttpWebRequest
Get
If _request Is Nothing AndAlso Me.Url.Trim.Length > 0 Then _
_request = CType(System.Net.HttpWebRequest.Create(Me.Url & "?wsdl"), _
System.Net.HttpWebRequest)
Return _request
End Get
End Property
Public ReadOnly Property Response() As System.Net.HttpWebResponse
Get
If _response Is Nothing AndAlso Me.Url.Trim().Length > 0 Then _
_response = CType(Request.GetResponse(), System.Net.HttpWebResponse)
Return _response
End Get
End Property
РЕДАКТИРОВАТЬ: я бы рефакторинг это в C #, но это довольно простой и должен легко переводить