2008年4月23日水曜日

.NET ウェブサービスが SOAP リクエスト パラメータを受理しない

http://www.nsoftware.com/kb/showentry.aspx?entry=04300305

該当製品:


  • IP*Works!
  • IP*Works! SSL


現象:


VS.NET でウェブサービスを書いているのですが、SOAP コンポーネントを使ってこのサービスをアクセスした場合、SOAP リクエストに付与したパラメータをウェブサービス側で受け取れません。

解決法:


あなたが呼び出そうとしているウェブサービスは RPC スタイルですか?それとも Document スタイルですか?

もし不明の場合は、当該サービスの文書をチェックしてください。あるいはもしそのサービスが .NET サービスでありそのソースコードにアクセスできるのであれば、当該サービスおよび webmethod の SoapRPCService 属性および SoapRPCMethod 属性をチェックするか、あるいは同じく当該サービスおよび webmethod の SoapDocumentService 属性および SoapDocumentMethod 属性をチェックします。

当該サービスが Document スタイルの場合、メソッド名のプレフィックスが存在しないことを確認します。(既定値では "m" がメソッド名前空間プレフィックスとして使用されます。) これを行うには、MethodNamespacePrefix 構成設定パラメータをコード内で設定します。例:
SOAP1.Method = "MyTest"
SOAP1.MethodURI = "http://localhost/webservice/"
SOAP1.ActionURI = "http://localhost/webservice/MyTest"
SOAP1.URL = "http://localhost/WebService/test.asmx"
SOAP1.AddParam "x", "something"
SOAP1.Config "MethodNameSpaceprefix="
SOAP1.SendRequest

0 件のコメント: