C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 130 を表示中)
■77021 / )  SOAP通信でWebメソッド名をタグに出力しない方法について
□投稿者/ Amy (1回)-(2015/09/04(Fri) 16:04:10)

分類:[ASP.NET (C#)] 

Javaをクライアント、.NET(C#)をサーバとしてSOAP通信しようとしています。

通信エラーになるのでWireSharkでSOAP電文をキャプチャしたところ、Internal Server Error
が発生していました。
そこで.NETでSOAPクライアントを作成して要求電文を飛ばしたところ、要求電文に.NET Wcfの
メソッド名がタグに追加されていました。このタグはWSDL定義上には存在しません。

(電文例)
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://hoge.jp/">
    <s:Body>
        <hoge_method_call xmlns="http://hoge.jp/">
            <data>hello</data>
        </hoge_method_call>
    </s:Body>
</s_Envelope>

上記例中、hoge_method_callが.NET Wcfのメソッド名で作成されるタグです。

どうやら.NET SOAPサービスは、このメソッド名のタグ付の要求を期待していると思われます。

しかし本来、このタグは不要で、下例の要求電文を飛ばさなければなりません。

(必要とする要求電文例)
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://hoge.jp/">
    <s:Body>
        <data>hello</data>
    </s:Body>
</s_Envelope>

そこで質問なのですが、.NET SOAP通信において、メソッド名をタグに含めなくする方法
はあるでしょうか?

なお、Javaクライアント及びWSDL定義は相手側のため、こちら側では変更できないので、
.NET SOAPサーバ側のプログラムで対応せざるを得ない状況です。

環境はVisualStudio2010、.NET Framwork4、Windows7です。

御存じの方がいらっしゃいましたら、ご教示頂けると助かります。

返信 編集キー/


管理者用

- Child Tree -