1

あるボックスから別のボックスに移動する VB.net アプリケーションがあります。それは古い箱でうまくいきます。新しいボックスは古いボックスと同じように構成されていますが、新しいハードウェアを使用しています。新しいサーバーでアプリケーションを実行すると、使用している Adob​​e ツールキットが見つからないというメッセージが表示されます。

エラーメッセージは.

Compiler Error Message: BC30002: Type 'FDFACXLib.FdfApp' is not defined.
on the line:
Dim FdfAcx As FDFACXLib.FdfApp

FDFACX.DLL およびその他の関連する dll は、c:\inetpub\wwwroot\bin ディレクトリにあります。ファイルのアクセス許可を確認したところ、ASP ユーザーはファイルへのフル アクセスを持っています。regsvr32 にも登録しました。

Visual Studio は新しいボックスにインストールされ、組み込みの開発サーバーを使用してプロジェクトを実行すると、すべてがうまく動作します (FDFACX.dll への参照が設定されます)。

IIS が dll を参照できないようです。この時点で他に何を試すべきかわかりません。助言がありますか?

4

2 に答える 2

1

64 ビット プロセスは 32 ビット ライブラリをロードできません。.NET アプリケーションが 64 ビット モードで実行されているのではないでしょうか? アプリケーションが新しい x64 ボックスで実行されている場合、ほとんどの場合、デフォルトで IIS の 64 ビット アプリケーション プールで実行されています。アプリケーション プールは、1 つ以上の IIS アプリケーションを実行するワーカー プロセスです。64 ビット プロセスである 64 ビット アプリケーション プールは、32 ビット ライブラリをロードできません。そのため、IIS では、新しい 32 ビット アプリケーション プールを作成してから、.NET アプリケーションを実行している IIS アプリケーションを更新して、既定のアプリケーション プールの代わりに新しい 32 ビット アプリケーション プールを使用する必要があります。

IIS 7 アドミニストレータを開きます。Web サイトに移動します。右側のサイド バーで [基本設定] をクリックすると、その Web サイトのアプリケーション プールの名前が表示されます (既定では DefaultAppPool です)。次に、ナビゲーションで [アプリケーション プール] に移動し、正しいアプリケーション プールを選択して、右側の [詳細設定] をクリックします。[32 ビット アプリケーションを有効にする] が false に設定されている場合は、64 ビットです。IIS アプリケーションが使用しているアプリケーション プールに対して、[32 ビット アプリケーションを有効にする] を true に設定する必要があります。

于 2010-10-01T21:07:00.437 に答える
0

笑いのために、dll を含むディレクトリをパスに追加しますか?

于 2010-10-27T14:26:09.553 に答える