5

Visual Studios 2010 で dll を作成しました。次の手順を実行しました。

  1. キー ペア (snk ファイル) を関連付けて厳密な名前を作成します。

  2. 各クラスに個別の ProgID と GUID を与える

  3. これは 64 ビット DLL であるため、'FrameWork64/v4xxxx' フォルダーにある RegAsm.exe を使用したことを確認しました。RegAsm.exe /codebase ECE2.dll を使用しました

  4. DLL で「gacutil -i」を実行しました

これらの手順はすべて成功しています。私が使用している DLL と ASP ページは intetpub/wwwroot に保存されています。

現在、DLLは私のラップトップと自宅のコンピューター (どちらも Windows 7 Ultimate を実行しています) で正常に動作します。私は今、それをWindows Server 2008 R2で動作させようとしています。これは私が問題を抱えているところです。

上記と同じ手順を実行すると、すべて成功します。ただし、ASP ページを実行すると、次のようなエラー メッセージが表示され、登録されていないことが示されます。

Microsoft VBScript ランタイム エラー '800a01ad' ActiveX コンポーネントはオブジェクトを作成できません: 'ECE2.CSV_DataSet'

変更が必要なIISの設定かもしれないと思いました。このサーバーは、Classic ASP ページを許可するように既に構成されているため、そうではないことはわかっています。サーバーで変更する必要がある特定の設定があるかどうか、またはサーバー 2008 で動作させるためにジャンプする必要がある追加のセキュリティ フープがあるかどうかについて、誰かが私に指示を与えることができますか? 7 アルティメット?

4

1 に答える 1

10

この ASP アプリケーションが実行されているアプリケーション プールの詳細設定を確認します。「32 ビット アプリケーションを有効にする」が True に設定されていますか。もしそうなら、それはあなたの問題です.32ビットプールの下で64ビットDLLをインスタンス化することはできません.

これを単純な「任意の CPU」ではなく「64 ビット dll」と見なす理由はありますか? regasm でない場合は、32 ビット dll としても使用できます。

それ以外の場合は、「32 ビット アプリケーションを有効にする」を指定せずにこの ASP アプリケーションを実行して、64 ビットとして実行する必要がありますが、最初にこれが設定されている理由がある可能性があります。したがって、次の手順では、この設定を持たない新しいアプリケーション プールを作成し、ASP の一部をこのプールで別のアプリケーションとして実行します。

于 2012-07-08T19:56:50.683 に答える