1

一部の Web サイトを Debian サーバーから別の Redhat サーバーに移行する必要があります。データベースへのすべてのアクセスは Web サービスを経由するため、SOAP を使用してそれらと通信します (そして、Web サービスは SQL Server ストアド プロシージャを呼び出します)。

問題は、(基本的に Apache2+PHP5 であっても) サーバー間にいくつかの違いがあるため、新しいサーバーで一部の呼び出しが失敗することです。

それらの1つはそれを非常に明確にします。これはデータベースに INSERT する関数なので、いくつかのパラメーターを指定して SoapClient を介して Web サービスを呼び出します。これらのパラメーターが空である場合もあります。問題のあるものは実際には通常空です。

Web サービスを呼び出し、@parameter が空の場合、@parameter が指定されていないことを示す SQL ストアド プロシージャからエラーが返されます。実際、その値を 0 または 1 に設定すると (整数でのみ失敗します)、機能します。ここで本当に奇妙なのは、Debian セットアップでは完璧に機能するのに、新しい RedHat セットアップでは機能しないことです。

これに影響を与える可能性のある SoapClient 構成パラメーターはありますか? 考えられるすべてのオプションを試しましたが、まだ機能しません (Web サービスと SQL サーバーはまったく同じです! Linux サーバーのみが変更されます!)

どうもありがとうございました。

PS: わかりやすくするために、送信される SOAP-XML リクエストを出力します。古いバージョンには<ns1:problematic_parameter/>このパラメーターが空の場合でも含まれますが、新しいバージョンにはこのタグが含まれていません。どちらの場合も、同じ方法で呼び出されます$client->Function(array('parameter' => $this->parameter [...] );

4

0 に答える 0