1

クラシック ASP サイトを Windows 2000 サーバーから Windows 2008 (開発と製品の両方) に移動しています。.NET 1.1 で作成された .dll があります。この securityUtility.asp にある JScript で作成された関数が dll を使用して ActiveXobject を作成すると、エラーが発生します。行は次のようになります。

関数getProfileFromLdap(ユーザー、pw){

var aClass、aProfile

aClass = new ActiveXObject("com.co.comp.security.ldap.LDAPLogin"); ... }

発生しているエラー: エラー '80070002' E:\SITES\WWW-COMPANYSITE-COM\SITE\BINS../../siteInc/securityUtility.asp、行 850

次のコマンドを実行して、dll をレジストリに登録しました。

"C:\Windows\Microsoft.NET\Framework\v1.1.4322\RegAsm" coSecurity.dll /tlb:coSecurity.tlb

言及する価値があるかどうかはわかりませんが、ある時点で、サイトを本番環境に移行しようとしたときに、サイトが開発とエラーで完全に機能しました。ずっと前に、サイトを新しい開発サーバー (Windows 2008) に移動しました。メモを取っておいたので、本番環境に移行したときに、どのような手順を踏んだかがわかっていました。ステップを記録するのを忘れたのではないかと思ったので、自分が行ったことをたどろうとして、.dll をアンインストールし、記録したステップを実行しました。現在は開発中に壊れていますが、ある時点では機能していました。

言及する価値があるかどうかはわかりませんが、このサイトは新しい開発サーバーの最初のサイトでした。.NET 1.1 は、他のどのフレームワークよりも前にインストールされました。事後、4.0と2.0がインストールされました。prod サーバーでは、4.0 が最初にインストールされ、次に 1.1 がインストールされました。それが重要かどうかはわかりません。

  • 開発サイトが機能していたとき、古い製品、新しい開発サーバー、および新しい製品と比較して、項目がレジストリにあることを確認しました

  • 古い本番サーバーでは、GAC に何もありませんでした


  • coSecurity.dll は、securityUtility.asp (コードが属するページ)と同じファイルにあります。

  • のアプリケーション プールには、両方の新しい環境で「32 ビット アプリケーションを有効にする」が含まれています。

  • 「Everyone」には、.dll に対する完全な権限が付与されます

何が欠けているのかわからない!

4

2 に答える 2

1

これは、私のように壁に頭をぶつけていた人たちのために私がやったことです:

  • コマンドプロンプトを管理者として開いた
  • dllが保存されている場所に移動しました
  • 「C:\Windows\Microsoft.NET\Framework\v1.1.4322\RegAsm」/u coSecurity.dll を使用して dll の登録を解除しました。
  • 「C:\Windows\Microsoft.NET\Framework\v1.1.4322\RegAsm」を使用してdllを再登録しました coSecurity.dll /codebase
  • regasm 警告が表示されますが、「Types registered successfully」というメッセージも表示されるはずです。

その後、エラーが表示されなくなりました。

于 2013-02-15T16:52:52.753 に答える
0

一般にHRESULT 80070002、「ファイルが見つかりません」を意味します。

私の推測では、依存関係がありません。Dependency Walkerを使用して、含める必要がある依存関係があるかどうかを確認してください。

また、COM サーバーを手動で登録するためのヒントについては、このスレッドを参照してください。

于 2013-02-14T19:31:25.893 に答える