0

http://code.google.com/p/php-wsdl-creator/downloads/listを使用して PHP で SOAP サーバーを作成しました。 私のクライアントは C# で作成された Dynamics CRM Online プラグインにありますが、テスト Web サイトではすべて正常に動作します。 SOAP サーバーをクライアントの Web ホストに送信すると、クライアントはファイルをアップロードしましたが、次のエラーが返されます。

SoapServer::SoapServer(): 'soap_version' option must be SOAP_1_1 or SOAP_1_2

これは彼らのサーバーの構成の問題だと思います(これにはSOAPモジュールをインストールする必要がありました)が、これを整理するためにどこを見たりアドバイスしたりするべきかわかりません。

参考までに、私の C# クラスは Web 参照で SOAP サーバーを参照しています。次の行を追加し、11 と 12 の両方を試しましたが、役に立ちませんでした。

soap.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Soap11;

phpinfo ページを見ると、テスト サーバー'--enable-soap' '--with-xsl=/usrの [Configure Command] セクションに行があります。Web ホストのバージョンにはありませんが、[ /etc/php.d/soap.iniAdditional .ini files parsed] に行があります - これにより問題が発生しますか? PHPサーバーの構成については何も知りません。

4

2 に答える 2

5

php-wsdl-createor-framework 内で同じ問題が発生しました。https://code.google.com/p/php-wsdl-creator/のパッチは、class.phpwsdl.php の 434 行目を変更することでした。

から

    // SOAP server options
    $this->SoapServerOptions=Array(
        'soap_version'  =>  SOAP_1_1|SOAP_1_2,
        'encoding'      =>  'UTF-8',
        'compression'   =>  SOAP_COMPRESSION_ACCEPT|SOAP_COMPRESSION_GZIP|9
    );

    // SOAP server options
    $this->SoapServerOptions=Array(
        'soap_version'  =>  (defined('SOAP_1_2'))?SOAP_1_2:SOAP_1_1,
        'encoding'      =>  'UTF-8',
        'compression'   =>  SOAP_COMPRESSION_ACCEPT|SOAP_COMPRESSION_GZIP|9
    )

それが誰にも役立つことを願っています

于 2014-11-10T13:38:29.690 に答える