2

2つの.asmxWebサービスへの参照を含むレガシーアプリケーションに取り組んでいます。より多くのエンタープライズサービスバスパターンに従うようにサービスレイヤーを再構築する必要があります。このパターンでは、クライアントはすべての呼び出しを1つのサービスに転送し、適切なサービスへの要求のルーティングを処理します。

私はWCFルーティングサービスを使用しており、RoutingServiceを介して適切なサービスにWCFサービスへの呼び出しを正常にルーティングすることができました。

たとえば、クライアントは次の場所に電話をかけることができます。

http://routingservice/RoutingService.svc/WcfService

ルーティングサービスはそれをに転送します

http://wcfservice/WcfService

構成で指定したルールを使用します

どういうわけか、.asmxサービスで同じ結果を達成したいのですが、レガシーアプリケーションのWeb参照URLを更新して、ルーティングサービスを指すようにします。これにより、上のリクエストがクライアントのURLに転送されます。現在使用中

変化する:

http://webservices/LegacyService.asmx

http://routingservice/RoutingService.svc/LegacyWebService

これは私が考えている方法で行うことができますか?

4

1 に答える 1

6

試したことはありませんが、理論的には問題なく動作するはずです。WCFはASMXと下位互換性があります。WCFクライアントを使用してASMXと通信できます。また、ASP.NETパイプラインにアクセスする必要がある場合は、ASMXの代わりにWCFを使用できます。basicHttpBinding(下位互換性のために使用される)でルーティングエンドポイントを使用してみてください。ルーティングサービスの使用IRequestReplyRouter契約について。

1つの問題が発生する可能性があります-ASMXサービスがASP.NETセッションを使用している場合、セッションキーはCookieで転送されます-ルーティングサービスがCookieをどのように処理するかわかりません。

于 2011-07-07T21:05:47.657 に答える