0

ASMX Web サービスがあります。時代遅れであることはわかっていますが、維持する必要があります。したがって、このサービスのメソッドに( WS-Addressingヘッダーを使用して)要求を送信するクライアント アプリケーションがあります。

someASMX.someSoapClient client = new someASMX.someSoapClient();
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
    OperationContext.Current.OutgoingMessageHeaders.ReplyTo = new EndpointAddress("https://address2answer");
    OperationContext.Current.OutgoingMessageHeaders.MessageId = new System.Xml.UniqueId(Guid.NewGuid());
    client.someMethod("1", "test");
}

ただし、リクエストは次の例外で失敗します。

Addressing Version 'AddressingNone (http://schemas.microsoft.com/ws/2005/05/addressing/none)' does not support adding WS-Addressing headers

ASMX Web サービスは WS-Addressing をサポートしていますか? その場合、WS-Addressing ヘッダーを含む要求を受け入れるようにするにはどうすればよいですか?

app.configクライアントに次のバインディングがあります。

<basicHttpBinding>
  <binding name="someSoap">
    <security mode="Transport" />
  </binding>
</basicHttpBinding>

<endpoint address="https://someserver:443/some.asmx"
    binding="basicHttpBinding" bindingConfiguration="someSoap"
    contract="someNS.someSoap" name="someSoap" />

バインディングで何かをしなければならないのではないかと思いますが、それService ReferenceはVisual Studioに追加することで自動生成されたものです-なぜそのように生成されたのですか? ASMX サービス側で何かを変更する必要があるのでしょうか?

4

1 に答える 1

0

残念ながら、私は ASMX について十分な調査を行っていません。これはwsHttpBindingをサポートしていません。したがって、それを取り除き、wsHttpBinding エンドポイントを使用して WCF サービスを作成する必要があります。

于 2015-12-25T07:47:33.993 に答える