3

クライアントをシステムに統合するのに問題があります。問題を絞り込んだと思います。クライアントはxmlメッセージを送信しており、私のシステムはxmlメッセージを受け入れるように設定されています。ただし、特定の形式でそれを期待しています。クライアントは、私が彼らを受け入れるために私の側でフォーマットをセットアップすることを望んでいます。

これはクライアントのメッセージです:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
                  xmlns:tem="http://tempuri.org/">
            <soapenv:Header/>
            <soapenv:Body>
               <NewOrder>
                  <Message id="d3a39c31-cc9f-4331-ad13-be74522df6eb">
                     <Header>
                        <LoginAccountIdentifier>Blank</LoginAccountIdentifier>
                        <LoginAccountPassword>password</LoginAccountPassword>
                     </Header>

予想される形式がノードのプレフィックスtem:を除いていることに気づきました。

これは予想されるメッセージです:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                      xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:NewOrder>
         <tem:Message id="d3a39c31-cc9f-4331-ad13-be74522df6eb ">
            <Header>
               <LoginAccountIdentifier>Blank</LoginAccountIdentifier>
               <LoginAccountPassword>password</LoginAccountPassword>
            </Header>

プレフィックスを削除できれば、クライアントのメッセージと期待されるメッセージが一致するはずです。問題は、プレフィックス「<tem:」をどこで削除するかです。さらに、この変数xmlns:tem = "http://tempuri.org/"がドキュメントに表示されないようにするにはどうすればよいですか?

4

2 に答える 2

3

私はずっと前に同様の問題に遭遇しました。これを使用してみてください:

[ServiceContract(Namespace = "")]

どうやら、プレフィックスは名前空間によって決定されるので、削除したい場合は、これが最適な方法です。

幸運を!

于 2012-05-18T19:02:36.937 に答える
1

[WebService(Namespace = "http://tempuri.org/")] これは、クラス定義の先頭に属性を持つWebService.svc(または.asmx)クラスからのものであると確信しています 。これを削除する(または適切な値に設定する)と、問題が解決するはずです。

于 2012-05-18T19:00:16.883 に答える