該当製品:
- 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