1

このエラーがあります。どこに問題があるかはわかっていますが、解決できません。動作している WCF Web サービスがあります。最初の Web サービスと同じであるが、名前空間が異なる 2 番目の Web サービスが必要です。localhost/test1.svc localhost/test2.svc Web 参照を追加したくないので、test1.svc?wsdl で wsdl.exe を使用しました。今、そのクラス test2.svc で呼び出したいのですが、このエラーが発生しています。これ
を見つけた EndpointDispatcher での ContractFilter の不一致

しかし、私はそれを使用する方法を知りません。または、Web サービスの URL を動的に追加する他の方法があります。

4

1 に答える 1

1

サービスを使用するときは、サービスの 2 つの異なるエンドポイントを定義します。

例えば

      <endpoint address="address1"
    binding="basicHttpBinding" bindingConfiguration="test1config" contract="service.icontract"
    name="test1endpoint" />
      <endpoint address="address2"
    binding="basicHttpBinding" bindingConfiguration="test2config" contract="service.icontract"
    name="test2endpoint" />

次に、コードで使用するエンドポイントを次のように指定できます。

var channelFactory = new ChannelFactory<IContract>("your-endpoint-name-here");

それを使用して、通常の方法でチャンネルを作成します。

そこから、エンドポイント名を変更することで、適切なタイミングで使用するものを選択できます。

于 2012-08-09T08:04:34.643 に答える