相关疑难解决方法(0)

WCF:从OperationContext检索MethodInfo

有没有一种优雅的方法来从MessageInspector/AuthorizationPolicy /其他扩展点获取将在服务实例上执行的方法?我可以用

OperationContext.Current.IncomingMessageHeaders.Action

但我希望有一些方法可以做到这一点,而无需手动匹配SOAP操作与OperationContracts.

我要做的是在执行之前检查方法的属性.

.net wcf

18
推荐指数
3
解决办法
1万
查看次数

如何在IClientMessageInspector中获取调用的操作名称?

IClientMessageInspector在我的应用程序中实现了"拦截"传出Web服务调用.是否有可能找出哪些操作正在从内部被称为BeforeSendRequestAfterReceiveReply

这里有一个类似的问题,如何在WCF消息检查器中获取调用的操作名称,该命令用于服务器端(接收请求的一方).我尝试做类似的事情,例如

    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        var v = OperationContext.Current.OutgoingMessageProperties["HttpOperationName"];
        return null;
    }

    public void AfterReceiveReply(ref Message reply, object correlationState)
    {
        var v = OperationContext.Current.OutgoingMessageProperties["HttpOperationName"];
    }
Run Code Online (Sandbox Code Playgroud)

但在传出请求期间,似乎OperationContext.Current为null,所以我不能使用它.知道如何获得它吗?知道怎么干净利落(相反,解析SOAP xml)?

.net c# wcf soap iclientmessageinspector

6
推荐指数
2
解决办法
4477
查看次数

WCF 服务操作名称

有没有办法配置 App Insights 在监视 WCF 服务时收集操作名称?所有请求都被 URL 集中在一起(它们只是以 .svc 结尾的 POST),因此没有简单的方法来确定对服务调用了哪个特定操作。

是否需要一个自定义的遥测初始化程序,可以以某种方式确定实际调用了哪个操作并设置自定义属性?如果是这样,您如何确定当前的 WCF 操作名称?

azure-application-insights

5
推荐指数
1
解决办法
1373
查看次数