1

Delphi で作成された ISAPI アプリケーションがあります。アプリケーションはランタイム パッケージでコンパイルされます。基本的に、関連するすべての bpl は、ISAPI dll が機能するように、ISAPI が有効なディレクトリにもデプロイする必要があります。ただし、ISAPI dll を呼び出すと、常にエラーが発生します。

ISAPI dll がランタイム パッケージでコンパイルされない場合、問題なく動作します。

ランタイム パッケージが問題の原因であるはずです。これまでの唯一の解決策は、ランタイム パッケージのパスをシステム環境変数 %path% に追加し、PC を再起動することです。

環境変数を変更しないことで利用できる他の解決策はありますか?

Windows 7 と IIS 7 と Delphi 2010 を使用しています。

4

3 に答える 3

1

ISAPI DLL とランタイム bpl が同じディレクトリにある場合は、ISAPI DLL とランタイム .bpl ファイルのファイル アクセス許可を確認し、インターネット ゲスト アカウントに読み取りと実行のアクセス権があることを確認します。

于 2009-11-05T15:32:39.883 に答える
0

ISAPI dll があるディレクトリに .bpl ファイルを配置しようとしましたか?

これが機能しない場合は、ISAPI のインストーラーを作成します。このインストーラーは、必要なすべての .bpl ファイルを Windows システム ディレクトリにコピーする必要があります ( GetSystemDirectory()API 関数を使用して取得できます。通常、これは です<WindowsDir>\system32)。InnoSetup の場合、これは{sys}ファイルの宛先です。

于 2009-11-05T13:29:40.810 に答える
0

BPL ファイルは、マシンのシステム パスまたは実行可能ファイルのディレクトリ (この場合、svchost.exe だと思いますか?) にある必要があります。さて、楽しい部分です。各アプリケーションが起動されると、その時点での環境のスナップショットが取得されます。パスに追加する場合は、マシンを再起動してアクティブにするか、アプリケーションを再起動する必要があります (この場合は OS の再起動が必要です)。

于 2009-11-05T17:11:25.717 に答える