何年にもわたって助けてくれてありがとう - ほとんどのことはすでに答えられているので、投稿が必要な問題は一度もありません! 残念ながら、やっと手に入れた...
次のように、SOAP ヘッダーで非常に具体的に表現されたトークンを必要とする Web サービスを使用します。
<soapenv:header>
<Authentication xmlns="...">12345</Authentication>
</soapenv:header>
これを実現するために、プロキシで (New InstanceContext(Me)) 宣言を使用しようとしていますが、VB 2010 Express ではそれが許可されておらず、理由がどこにもわかりません... 次のようなコード:
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Private Sub GoXSQ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GoXSQ.Click
If My.Settings.XSQ <> "" Then
Dim XSQPService As New XSQ_Proxy.XsquareProxyService(New InstanceContext(Me))
XSQPService.Url = "http://" + My.Settings.XSQ + ":9004/XSquareProxyService"
Dim token As String = ""
Try
token = XSQPService.Authenticate(My.Settings.XSQUser, My.Settings.XSQPass)
Catch ex As Exception
SB.AppendText(Now() & " - Error communicating with XSQ API - " & ex.Message & " - " & ex.InnerException.ToString + Environment.NewLine)
End Try
If token <> "" And token > "000000" Then
SB.AppendText(Now() & " - Token received: " & token + Environment.NewLine)
'<!--- Insert XSQ process code here! ---!>
Using scope As New OperationContextScope(XSQPService.InnerChannel)
If Not OperationContext.Current.OutgoingMessageHeaders.FindHeader("Authentication", "http://www.evs.tv/XMLSchema/Authentication/") = -1 Then
OperationContext.Current.OutgoingMessageHeaders.RemoveAt(OperationContext.Current.OutgoingMessageHeaders.FindHeader("Authentication", "http://www.evs.tv/XMLSchema/Authentication/"))
End If
Dim header As MessageHeader = MessageHeader.CreateHeader("Authentication", "http://www.evs.tv/XMLSchema/Authentication/", token)
OperationContext.Current.OutgoingMessageHeaders.Add(header)
Dim jobsrunning = XSQPService.GetMachines()
For Each job In jobsrunning
SB.AppendText(job.Name)
Next
End Using
Else
SB.AppendText(Now() & " - XSQ API login failure - check username/password!" + Environment.NewLine)
End If
End If
End Sub
私が受け取っているエラーは次のとおりです。
Dim XSQPService As New XSQ_Proxy.XsquareProxyService(New InstanceContext(Me))
Public Sub New() への引数が多すぎます
Using scope As New OperationContextScope(XSQPService.InnerChannel)
InnerChannel は次のメンバーではありません...
2 つ目は最初のものによるものだと推測していますが、このフレーズが機能しない理由を特定するものは何も見つかりません。コンパイル フレームワークである .NET 4.0 で完全にサポートされています。
どんな助けでもいただければ幸いです
ポール