1

PowerShell New-WebServiceProxy コマンドレットを使用して、WebService (WCF/SOAP) との接続を取得しました。WebService に接続することはできますが、メソッドを実行しようとすると、アクセスが拒否されます。アクセスが拒否されたのは、WebService がカスタム メッセージ ヘッダーを必要とするためです。しかし、これは New-WebServiceProxy では不可能です。

質問: WebService に接続/使用し、メッセージ ヘッダーを追加する最も簡単な方法は何ですか? PowerShell のサンプル スクリプトはありますか? (その場合、私が好む言語は PowerShell です)

ところで: はい、私と非常によく似た質問があることを知っています: Add custom SOAP header in PowerShell using New-WebServiceProxy

前もって感謝します!

4

1 に答える 1

2

これは回避策ですが、おそらくうまくいくでしょう。コマンドレットを使用する代わりに、C# または VB.NET プロジェクトを作成し、使用する予定の WCF サービス参照を追加します。次に、呼び出すすべてのサービス メソッドのメソッドを持つクラスを作成し、PowerShell で使用する必要がある引数を公開します。

class MyProxy
{
    public string Url { get; set; }
    public string SomeParameterForTheHeader { get; set; }

    public string CallSomeMethod(string input1, string input2)
    {
        // create WCF context using this.Url
        // create MessageHeader using this.SomeParameterForTheHeader and add it to the context
        // call SomeMethod on the context using input1 and input2
    }
}

これをコンパイルし、PowerShell スクリプトでアセンブリとクラスを使用します。

[System.Reflection.Assembly]::LoadWithPartialName("MyAssembly") > $null
$ref = New-Object MyNamespace.MyProxy()
$ref.Url = "http://..."
$ref.SomeParameterForTheHeader = "your value here"
$ref.CallSomeMethod("input1", "input2")
于 2012-12-12T09:39:08.837 に答える