2

私はすでに2日間解決策を探しています。私は次の効果を得ています:

   array(2) {
  [0] => array(6) {
    [0] => string(5) "IMSSP"
    ["SQLSTATE"] => string(5) "IMSSP"
    [1] => int(-49)
    ["code"] => int(-49)
    [2] => string(390) "This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server.  Neither of those ODBC Drivers are currently installed. Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712"
    ["message"] => string(390) "This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server.  Neither of those ODBC Drivers are currently installed. Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712"
  }
  [1] => array(6) {
    [0] => string(5) "IM002"
    ["SQLSTATE"] => string(5) "IM002"
    [1] => int(0)
    ["code"] => int(0)
    [2] => string(91) "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"
    ["message"] => string(91) "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"
  }
}

「Microsoft SQL Server 2008 R2 Native Client」はないように見えますが、あります。

ローカル マシンとテスト サーバーで既に同じ構成を使用しています。「Microsoft SQL Server 2008 R2 Native Client」がインストールされていない場合、ローカル マシンで同じエラーが発生していました。インストール後、問題は解決しました。

残念ながら、ここでは何の変化も見られません。

別の PHP および sqlsrv ドライバーを試していましたが、効果はありませんでした。

これはライブサーバーなので、あまり実験できません。

どうすればこれを機能させることができますか? これは、コントロール パネルの ODBC 設定と関係がありますか? 別のネイティブ クライアントもインストールされていますが、このライブ サーバーから削除できません。

この情報の読み方は?PHP sqlsrv ドライバーはネイティブ クライアントを認識しますか?

編集

問題は、すべてを 32 ビットで使用していることです。ネイティブ ドライバーは、ODBC コントロール パネルにも表示されます。PHP の Sqlsrv 拡張機能も、phpinfo に示されているように機能しています。

PHP の sqlsrv 拡張機能がそのネイティブ クライアントを「認識」しない可能性はありますか?

私は無力なので、Web サーバーとまったく同じ構成を設定し、より大胆な実験を行う VM をセットアップしています。

4

2 に答える 2

2

サーバーに 32 ビットおよび 64 ビットのドライバーをインストールします。32 ビットの odbc コントロール パネルは、Windows\SysWow64 ディレクトリにあります。まったくわかりませんが、それだけです。実行可能ファイル (PHP) 用のドライバーがあることを確認してください。32 ビットの場合は、32 ビット ドライバーが必要です。

于 2011-04-28T19:55:02.250 に答える
1

今週私が抱えていたのと同じ問題を抱えているようです

Process Monitor をダウンロードし、この投稿の指示に従いました

http://www.iislogs.com/articles/processmonitorw3wp/

次に、プロセス w3wp.exe がこのレジストリ キーでアクセスを拒否されているのを見ました。

HKLM\Software\ODBC\ODBCINST.INI\SQL ネイティブ クライアント 10.0

RegEdit を開き、そのキーに移動しました。

右クリック - > Permissions を実行し、Network Service をリストに追加して、読み取り権限を付与しました。

アプリプールをリサイクルし、現在動作中です!

それが役に立てば幸い。

乾杯、フェデ

于 2012-03-29T08:34:21.660 に答える