分類:[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です。
御存じの方がいらっしゃいましたら、ご教示頂けると助かります。
|