我正在以 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 活动(位于工具箱的 Primitives 部分)。在那里您指定一个类类型和要调用的方法。在此方法中,您可以调用 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;
}
}