【问题标题】:VS2010 "Update Service Reference" to WCF where behavior extensions inspect and change messagesVS2010“更新服务参考”到 WCF,其中行为扩展检查和更改消息
【发布时间】:2012-03-21 11:14:20
【问题描述】:

我正在使用加密时间戳来保护我的 Web 服务器中的 WCF 服务与“中间层”中的另一个服务之间的通信。在调用服务(此交换中的客户端)中,我使用一个 DLL,其类继承 System.ServiceModel.Configuration.BehaviorExtensionElement 以提供实现 System.ServiceModel.Description.IEndpointBehavior 和 System.ServiceModel.Dispatcher.IClientMessageInspector 的功能。这是通过带有部分的 web.config 文件粘贴的

<extensions>
 <behaviorExtensions>
  <add name="MessageInspectorBehavior" type="MessageInspectorDLL.MessageInspectorBehaviorExtensionElement, MessageInspectorDLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
 </behaviorExtensions>
</extensions>

<endpointBehaviors>
  <behavior name="MessageInspectorEndpointBehavior">
    <MessageInspectorBehavior />
  </behavior>
</endpointBehaviors>

然后这些被连接到中间层 WCF 与这样的条目

<client>
  <endpoint address="http://blah.cloudapp.net:8080/BlahService.svc"
    behaviorConfiguration="MessageInspectorEndpointBehavior" binding="customBinding"
    bindingConfiguration="CustomBinding_BlahService"
    contract="BlahServiceReference.BlahService"
    name="CustomBinding_BlahService" />

在中间层有一个类似的故事,System.ServiceModel.Dispatcher.IClientMessageInspector 解密时间戳并处理请求或抛出带有错误消息“Invalid stamp”的 System.ServiceModel.FaultException。

这遵循http://msdn.microsoft.com/en-us/library/ms733747.aspx 和http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx 的代码示例

现在我已经更改了中间层 WCF。有些更改很简单(例如,更正方法名称“retrive”->“retrieve”中的拼写错误),而有些更改添加了更多实质性功能,我想更新客户端中的服务记录。在 VS2010 中,我右键单击需要更新的服务引用并选择“更新服务引用”。 VS2010连接中间层WCF(“正在下载服务信息”)然后抛出错误

由于以下问题,无法更新服务引用的配置:为扩展“MessageInspectorBehavior”注册的类型“MessageInspectorDLL.MessageInspectorExtensionElement、MessageInspectorDLL、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null”无法更新被加载。 (C:\TFS\Blah\Blah\web.config 第 80 行)

怎么了?我需要为更新服务引用设置什么才能正确使用消息检查器 DLL?

尽管 DLL 或 web.config 可能存在看起来不太可能的错误,因为客户端将连接到 Azure 上的先前中间层,并且具有相同的加密时间戳检查。

【问题讨论】:

  • 我相信你能想出一个更能描述你的问题的标题。
  • 当然可以 - 我点击发送却没有意识到我已经完成了!

标签: wcf visual-studio-2010 idispatchmessageinspector


【解决方案1】:

我找到了答案。添加 MessageInspectorDLL 作为对 ASP 应用程序的引用为我修复了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多