Visual Studio デザイナー モードの Windows Workflow Foundation 4.0 でサービスを構築しています。
WF、VS Designer モードでクライアント IP と要求ヘッダーを取得するにはどうすればよいですか?
Visual Studio デザイナー モードの Windows Workflow Foundation 4.0 でサービスを構築しています。
WF、VS Designer モードでクライアント IP と要求ヘッダーを取得するにはどうすればよいですか?
着信要求から WCF の詳細を取得する方法は、IReceiveMessageCallback を実装し、そのクラスを NativeActivityContext.Properties に追加することです。OnReceiveMessage() 関数では、WCF OperationContext を受け取り、そこから好きなデータを取得できます。
やりたいことは、デザイナーのワークフローに InvokeMethod アクティビティ (これはツールボックスの [プリミティブ] セクションにあります) を配置することです。そこで、クラス タイプと呼び出されるメソッドを指定します。このメソッド内で、次のように OperationContext クラスを呼び出して、クライアント アドレスと要求ヘッダーを取得できます。
public class Class1 {
public static void SomeMethod() {
EndpointAddress clientAddress = OperationContext.Current.Channel.RemoteAddress;
MessageHeaders headers = OperationContext.Current.RequestContext.RequestMessage.Headers;
// Do something with the address and / or headers...
return;
}
}