问题标签 [idispatchmessageinspector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
12439 浏览

wcf - 如何在 WCF 中获取自定义肥皂标题的值

我创建了一个自定义的肥皂标题,并通过 IClientMessageInspector 将其添加到我的消息中

我还有一个 IDispatchMessageInspector,我可以在列表中找到正确的标题。但是,没有任何价值。我知道该值正确地通过了线路,因为消息字符串是正确的

但似乎没有任何属性可以检索此值。MessageHeaderInfo 类有 Actor 等,但我找不到其他有用的东西。

在客户端,我必须在 Header 和 Untyped 标头之间进行转换,服务器上是否有等效的操作?

我发现了以下内容,应该可以。

如果我手动找到正确的索引并调用第二行,它会按预期工作。但是 FindHeader 返回 -1 作为索引,即使我已经在监视窗口中确认这些是名称和命名空间的正确值。

0 投票
5 回答
12711 浏览

wcf - 如何在 WCF 消息检查器中获取调用的操作名称

我在 WCF 中做一个消息检查器:

它实现了该方法:

我可以通过以下方式获取调用服务的名称:

但是我如何获得被调用操作的名称呢?

0 投票
1 回答
2437 浏览

.net - 如何访问用于在 WCF 服务(服务器端)上实现 IDispatchMessageInspector 的类中的属性?

我正在使用 WCF IClientMessageInspector 将标头中的信息发送到 WCF 服务 (wsHTTP)。我正在使用 IDispatchMessageInspector 接收信息并填充 String 属性。

当我在特定方法中使用 FindHeader 时,我验证了标头正在正确发送信息,但我宁愿只访问具有 Token 属性的自定义类并从那里获取 Token 而不必在单独的方法中执行 FindHeader所有其他方法调用以获取标头值。

所以我的问题是,从服务器端(我假设是 OperationContext)我如何访问这个类实例,它的 Token 属性填充了标头信息?

下面是整个类的代码:

地区“进口”

结束区域

区域“IEndpointBehavior”

结束区域

区域“ IClientMessageInspector ”

结束区域

区域“IDispatchMessageInspector”

结束区域

结束类

0 投票
1 回答
7138 浏览

c# - IDISpatchMessageInspector

我实现 IDispatchMessageInspector.AfterReciveRequest 然后我像这样配置:

但它不起作用。

我检查了我的程序集和我的本地参考,我没有找到Microsoft.WCF.Documentation.InspectorInserterHostApplicationdll 我在网上搜索以下载HostApplicationdll 但我什么也没找到。

我需要做什么?

我需要实现更多的东西,或者我只需要这个配置。

0 投票
1 回答
2530 浏览

wcf - 在运行时添加 WCF 消息检查器

我创建了一个自定义 ServiceHost,我想用它来自动将消息检查器添加到在其上运行的服务的每个端点。我创建了一个实现 IDispatchMessageInspector 和 IClientMessageInspector 的 MessageInspector,并找到了应该将其添加到每个端点的以下代码:

我遇到的问题是 ChannelDispatchers 集合在打开服务主机之前是空的,这意味着我无法在构造函数中运行此代码。我为 Opened 事件创建了一个事件处理程序,并在其中使用了该代码,但是在尝试添加端点时出现以下错误:

似乎我陷入了某种 Catch 22,我在 WCF 中寻求的功能是否可行?

谢谢,

麦克风

0 投票
1 回答
3183 浏览

wcf - 如何在服务级别在 WCF 中记录 JSON 响应

我有一个将 JSON 返回给客户端的 WCF 服务。

这是 app.config

这是服务公开的示例操作

现在,我想记录服务从客户端接收到的每个请求以及发送回客户端的响应……在这种情况下,它是 JSOn。

我创建了一个自定义 MessageInspector 如下

但这似乎没有记录任何响应.. response.Tostring() 只说“...stream”

如果我的服务以 SOAP XML 格式返回数据,则上述内容有效。但我希望它记录 JSON 响应,这是我调用 REST 服务端点时在浏览器中下载的 *.js 文件中的文本。例如:http://localhost:8080/MyService/me/2/

有什么想法可以实现吗?

0 投票
1 回答
1710 浏览

wcf - 如何使用 MessageInspector 在 WCF 上实现编排

我有一个 WCF 服务,我使用 MessageInspector(继承 IDispatchMessageInspector)检查它

我想在运行服务之前做一些事情,结果我不想运行服务。

我想阻止客户端调用,但客户端没有收到异常。

你能帮助我吗

0 投票
2 回答
209 浏览

wcf - 如何禁用我的状况的 MessageInspector

我使用 IDisptachMessageInspector 检查 WCF 服务,然后在更改消息上下文的 BeforeSendReply 方法中调用服务操作。但是当我调用 service 时, Inspector 再次运行。我不想运行检查员。你知道有什么方法可以做那个场景吗?

0 投票
3 回答
4079 浏览

c# - 使用 IDispatchMessageInspector 获取请求的远程地址

我正在尝试关注这篇博文:http: //blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx

我的目标是以某种方式获取传入请求的远程地址,但由于某种原因,该地址要么在任何参数中都看不到,要么为空。

这是我正在实现的接口:

我试图获取远程地址的方法是AfterReceiveRequest. 我检查了两个参数requestchannel. 此外,这似乎channel.RemoteAddress是它应该在的地方,但由于某种原因,该属性为空。该request参数也是空的,但我猜那是因为我正在执行 GET 而不是 POST。

下面是我正在调用来测试它的方法的签名。

0 投票
1 回答
2614 浏览

wcf - 如何在 WCF 服务中实现安全性,以便只有选定的客户端才能访问我的服务(不检查每个方法中的用户 ID/密码)?

我已经IDispatchMessageInspector在我的 WCF 服务中实现了如下所示的安全性。

客户端代码:

}

服务器端(服务):

}

}

这样,只有知道 authkey 的客户才能访问我的服务。这就是我所做的。但我不确定安全性,因为我认为如果有人以某种方式从网络线路上的肥皂中破解此 authkey 将能够访问我的服务。在这种情况下如何保护我的服务?请为我提供一个解决方案,以便只有选定的客户才能访问我的服务。