レガシー Web サービスに接続する必要があります。
Visual Studio で [サービス参照の追加] を実行する場合は、サーバー上の WSDL ファイルの URL を入力します。私のサービスが表示され、それに対してコードを書きます。しかし、コードを実行すると、次のエラーが発生します。
System.ServiceModel.CommunicationException: 受信メッセージ (Soap12 ( http://www.w3.org/2003/05/soap-envelope )) のエンベロープ バージョンが、エンコーダー (Soap11 ( http://schemas ) のエンベロープ バージョンと一致しません。 .xmlsoap.org/soap/envelope/ )))。予想されるメッセージと同じバージョンでバインドが構成されていることを確認してください。
私の app.config は次のようになります。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="LoginServiceSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://server/Service.asmx" binding="basicHttpBinding"
bindingConfiguration="LoginServiceSoap" contract="Stuff.Login.LoginServiceSoap"
name="LoginServiceSoap" />
</client>
</system.serviceModel>
ただし、「Web 参照」を追加すると、サービスとうまく通信できます。しかし、私の理解では、WebReferences の代わりに Service References を使用することになっています。上記の設定に何か問題があると思います。
または、接続しているサービスの種類のために、Web 参照を使用する必要がありますか?