2012-03-02 3 views
0

暗号化されたタイムスタンプを使用して、WebサーバーのWCFサービスと他の中間層の通信を保護しています。呼び出し側のサービス(この交換のクライアント)では、クラスがSystem.ServiceModel.Configuration.BehaviorExtensionElementを継承し、System.ServiceModel.Description.IEndpointBehaviorとSystem.ServiceModel.Dispatcher.IClientMessageInspectorを実装する機能を提供するDLLを使用しています。ありますこれは、セクションVS2010ビヘイビア拡張機能がメッセージの検査と変更を行うWCFへのアップデートサービスリファレンス

<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> 

でweb.configファイル経由で接着され、その後、これらは中間層で、この1

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

のようなエントリを持つ中間層のWCFにフックアップされていますSystem.ServiceModel.Dispatcher.IClientMessageInspectorを使用してタイムスタンプを復号化し、要求を処理するか、System.ServiceModel.FaultExceptionを「無効なスタンプ」というエラーメッセージとともにスローします。

これは、今、私は中間層のWCFを変更したhttp://msdn.microsoft.com/en-us/library/ms733747.aspxhttp://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx

でのコード例に従います。いくつかの変更は単純であり(例えば、メソッド名 "retrive" - > "retrieve"のスペルミスを修正する)、より重要な機能が追加され、クライアントのサービスレシーナを更新したい。 VS2010では、更新が必要なサービス参照を右クリックし、「サービス参照の更新」を選択します。 VS2010が中間層のWCFに接続し、エラーをスローします。

次の問題により、サービス参照の構成を更新できませんでした。 'MessageInspectorDLL.MessageInspectorExtensionElement、MessageInspectorDLL、Version = 1.0.0.0、Culture =ニュートラル、PublicKeyToken = null '拡張機能' MessageInspectorBehavior 'を登録できませんでした。 (C:¥TFS¥Blah¥Blah¥web.config 80行目)

何が問題なのですか?メッセージインスペクターDLLを正しく使用するために更新サービス参照用にセットアップする必要があるものはありますか?

DLLまたはweb.configにエラーがある可能性はありますが、クライアントがAzure上にある以前の中間層に接続し、暗号化されたタイムスタンプの検査が同じであるために発生する可能性は低いです。

+0

私はあなたの問題が何であるかをよりよく表すタイトルを思いつくことができると確信しています。 –

+0

確かに - 私はそれを残していたことを認識せずに送信をヒットする! – dumbledad

答えて

0

私は答えを見つけました。 ASPアプリケーションへの参照としてMessageInspectorDLLを追加すると、私のために修正されました。

関連する問題