WSEを使用してasmxWebサービスに接続する.NET2.0FormsAppクライアントがあります。
サービスをWCFにアップグレードし、VS2010と.NET4を利用したいのですが、既存の(企業の)顧客にクライアントソフトウェア/フレームワークなどを更新させることはできません。そのため、私たちはそのような立場にあります。サービスをアップグレードする唯一の方法は、下位互換性を維持できるかどうかです。
顧客側でapp.configを更新できますが、実行可能ファイルは更新できません。つまり、新しいサービス参照を追加することはできません。
クライアントに変更を加えずに、クライアントアプリからの呼び出しを受け入れるようにWCFサービスを構成しようとして失敗しました。私はこれができるとは思えません。もちろん、クライアントに新しい参照を追加すると機能しますが、既存の参照を使用して新しいサービスで「偽造」しようとしても機能しません。
サービス側の構成は次のようになります。
<bindings>
<basicHttpBinding>
<binding name="OnePointOneBinding" bypassProxyOnLocal="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehaviour" name="xyz.Services.xyzService">
<endpoint binding="basicHttpBinding" bindingConfiguration="OnePointOneBinding"
name="BasicBindingSvc" contract="xyz.Services.IxyzService" />
</service>
</services>
私たちが得ているエラーは次のとおりです。
EndpointDispatcherでのContractFilterの不一致により、アクション'http://webservices.xyz.co.uk/xyz/DoTest'のメッセージを受信者で処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。
喜んで受け取った入力