1

ローカルで非常にうまく動作する C# アプリケーションを開発しました。

しかし、サーバーに置くときに問題があります。

アプリケーションは、参照 (A.dll) で DLL ライブラリを使用し、実行の時点で、A.dll は Temp ディレクトリに別の DLL (埋め込まれているので、B.dll と呼びましょう) を作成します。しかし、A.dll が B.dll をロードしようとすると、例外がスローされます。

system.invalidoperationexception: failed to load B.dll

私はDLLのソースにアクセスしていませんが、ライブラリです。

要約すると、次のようになります。

  • プロセスには、ファイルとパスに対するフル コントロール権限があります。(チェック済み)
  • 管理者として実行しています。(チェック済み)
  • 私のアプリケーションでは、dll をバイナリ モードで開こうとしても、操作に問題はありません。
  • テストしたすべての OS (Windows 8_64 / XP_32 / 2008_32 / 7_64) で問題なく動作しますが、2008 R2 64 では失敗します。
  • B.DLL の再ダウンロード、名前の変更、再インストールを試みましたが、B.DLL と同じパスにプログラムを配置しましたが、結果はありませんでした。

したがって、この時点で、「プロセスがDLLを読み込めません」など、サーバーのセキュリティ上の問題だと思います。

例外: http://i.imgur.com/NmB2Fth.png?1

誰でも解決策を提案できますか?私はよくチェックしますか?どこ?

PS DLL を登録しようとすると、次の同じエラーが表示されます: Register DLL file on Windows Server 2008 R2

4

1 に答える 1