0

IIS で Web サイトを表示しようとすると、奇妙なエラーが発生します。新しい ASP.Net Web サイト アプリケーションを作成した場合、まったく変更せずに実行 (F5) すると、Web ページに次のエラーが表示されます。

Compilation Error
Description: An error occurred during the compilation of a resource required to
service this request. Please review the following specific error details and modify
your source code appropriately.

Compiler Error Message: CE29: (CE29) Unable to load assembly C:\Windows\assembly\GAC_64
\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll Not
a valid .NET executable (Offset and length were out of bounds for the array or count
is greater than the number of elements from index to the end of the source collection.)

.Net 構成の問題のように見えますが、修正方法がわかりません。.Net 3.5 SP1 をインストールし、IIS 7.0 を Vista Home Premium 64 ビットで実行しています。この Web サイトは、2008 Visual Studio Shell で実行される Delphi Prism を使用して作成されています。私はグーグルでグーグルでグーグルで検索しましたが、何もしませんでした。どんな助けでも大歓迎です!

4

3 に答える 3

1

System.EnterpriseServices(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG) を参照に追加すると、問題が解決します。

また

これを使用していない場合は、web.config から参照を削除します。

于 2009-11-20T13:53:59.897 に答える
0

プロジェクトの参照を確認してください。System.EnterpriseServices を参照していますか? そうでない場合は、machine.config ファイルを見てください。多分アセンブリはそこで参照されていますか?

于 2009-11-20T13:46:41.863 に答える
0

その DLL への参照を削除してみることができますが、おそらく Prism が何らかの理由でそこに配置しています。考えられる理由はたくさんあります。ページ レベルのトランザクション サポートを指定したか、COM 相互運用機能を使用している可能性があります。参照を一時的に削除し、完全な再構築を行って、コンパイラが何を訴えているかを確認することで、理由を特定できます。

理由が何であれ、そのアセンブリがまだ必要であることがわかった場合は、適切なアセンブリを適切な場所に配置して、IIS がそれを読み込めるようにする必要があります。

Windows エクスプローラーで GAC を開いてみます。私は Vista を実行していないので、私の手順と異なる場合はご容赦ください。スタートをスリックして、c:\windows\assembly と入力します。このフォルダを表示/管理するには、明らかにアクセス許可が必要です。問題のアセンブリを見つけて、利用可能なバージョンを確認します。.NET サブシステムがアプリケーションを 64 ビットとして jit しようとしているようで、このアセンブリの 64 ビット バージョンが必要です。

GAC に適切なアセンブリが表示されない場合 (他のバージョンが表示される可能性があります)、それが原因である可能性があります。

解決策はわかりませんが、システムのどこかに 64 ビット バージョンの DLL があることを確認し、GACUtil /i を使用して GAC にインストールしてみるという 2 つの方法を試すことができます。aspnet_regiis.exe -i を使用して、IIS 用に ASP.Net を再構成することもできます。

于 2010-01-14T22:37:08.457 に答える