1

Microsoft アクセス データベース (MDB) を使用して従来の ASP で構築された Web サイトがあります。Windows 7 64 ビット マシンで実行するようにサイトをセットアップしました。サイトを IIS に追加したときに、.net 2.0 アプリ プールを選択しました。このプールは、クラシック パイプラインを使用してセットアップされ、32 ビット アプリケーションのサポートがオンになっています。これはうまくいきました。

現在、サイトに検索機能を追加しています。Windows インデックス サービスを利用し、asp を使用してカタログにクエリを実行しています。検索機能を新規アプリとして追加する際に、64 ビット アプリ プールを使用するように指定しました。何らかの理由で、検索機能が指定された 64 ビット アプリケーション プールを正しく使用していないようです。

メイン サイト用に指定した 32 ビット アプリ プールを開き、32 ビット アプリケーションのサポートをオフにすると、検索は機能しますが、64 ビット Jet ドライバー (MDB) がないため、アクセス クエリは失敗します。

メイン サイトとそのサイトにサブディレクトリとして追加されたアプリケーションに対して、異なるビット数の異なるアプリケーション プールを IIS で使用するにはどうすればよいですか?

accdbには64ビットのドライバーがあるため、mbdデータベースをaccdbに変換することを考えました。現在、私たちの現在のホスティング会社は win2k ボックスでサイトを実行しているため、それはできません。私は新しいホストを選択する過程にあり、win 2008/2012 サーバーでサイトを実行する予定です。その時点でデータベースをアップグレードできましたが、コードに多くの場所があるため、サイトが頻繁に変更され、変換中に2つのバージョンを維持する必要があるため、面倒になり、時間がかかる場合があります.

マイク

4

3 に答える 3

0

メイン サイト用に指定した 32 ビット アプリ プールを開き、32 ビット アプリケーションのサポートをオフにすると、検索は機能しますが、64 ビット Jet ドライバー (MDB) がないため、アクセス クエリは失敗します。

...

accdbには64ビットのドライバーがあるため、mbdデータベースをaccdbに変換することを考えました。現在、私たちの現在のホスティング会社は win2k ボックスでサイトを実行しているため、それはできません。私は新しいホストを選択する過程にあり、win 2008/2012 サーバーでサイトを実行する予定です。その時点でデータベースをアップグレードできましたが、コードに多くの場所があるため、サイトが頻繁に変更され、変換中に2つのバージョンを維持する必要があるため、面倒になり、時間がかかる場合があります.

これを行う必要はありません。

IIS は、64 ビットの任意のウィンドウで 64 ビット モードまたは 32 ビット モードで実行できます。これはEnable32BitAppOnWin64、IIS6 のディレクティブを使用するか、IIS 7.xで32 ビット アプリケーション オプションを有効にすることで有効にできます。古い Microsoft Access データベース( ) は、新しいMicorsoft.mdbに変換する必要なく、64 ビットまたは 32 ビットでアクセスできます。 Access 2007-2010 データベース形式 ( accdb) の場合、正しいドライバーをインストールするだけで済みます。

現在、Microsoft Access データベースの 64 ビット モードは、Microsoft Access Database Engine 2010 RedistributableMicrosoft.ACE.OLEDB.12.0とも呼ばれるドライバーによって提供されます。

Windows のデフォルトのインストールには、古い非推奨の Microsoft Access データベース ドライバーまたはMicrosoft.Jet.OLEDB.4.0. 無視して新しいものをインストールしてください

新しいドライバーをインストールするとき、すべての接続文字列を少し変更する必要があるかもしれませんが (DSN の接続を使用しない場合)、古い機能はすべて新しいドライバーで動作します。

注:ホストにインストールした Office のバージョン (32 ビット/64 ビット) に対応するドライバーをインストールする必要があります (該当する場合)。Office (32 ビット) がサーバーにインストールされている場合、64 ビット ドライバーをインストールすることはできません。serevr に Office がインストールされていない場合は、このメモを無視してください。

于 2013-11-01T18:14:46.697 に答える
0

サブフォルダーの webconfigで、パスにinheritinchildapplications ="false" を入れます

<location path="." inheritInChildApplications="false">
<system.web>
于 2013-11-01T14:01:44.760 に答える
0

2 つのアプリ プールをうまく連携させるためにほぼ 1 日かけて探した結果、問題はシートとキーボードの間の物体にあることがわかりました。説明させてください。

検索ファイルを新しいアプリケーションとしてサブフォルダーに移動したときに、検索フォームのターゲットを新しい場所のファイルを指すように更新するのを忘れていました。まだ古い場所を指していました。これが、検索が 64 ビットではなく 32 ビットで実行されていた理由です。

Windows 7 IIS で動作する従来の ASP は、ビット数の異なる複数のアプリケーション プールを持つことができると言えます。

于 2013-11-01T19:06:27.347 に答える