web-dev-qa-db-ja.com

IIS7で.NET Frameworkのバージョンを4.0に変更した後の500内部サーバーエラー

アプリケーションプールの.NET Frameworkバージョンを指定(IIS 7) Microsoft Technetの指示に従って、IIS7マネージャーでアプリケーションプールの.NET Frameworkバージョンを変更しました。 ASP.NETページを再アップロードしようとすると、500-内部サーバーエラーが表示されます。 .NET 2.0(x86、x64、AnyCPU)、および4.0(x86、x64、AnyCPU)でアップロードしようとしましたが、すべて同じエラーが発生します。これは、エラーが私に与えるすべての詳細です:「探しているリソースに問題があり、表示できません。」

サーバーで.NETバージョン2.0を維持する場合、問題なく機能します。また、index.htmをアップロードすると、HTMLページが表示されるだけで問題なく動作します。

ちなみにこれはWindows Server 2008 R2です。

編集:

私は最終的にエラーの詳細を取得する方法を見つけました。はい、どうぞ:
ハンドラ"PageHandlerFactory-Integrated"のモジュールリストに不正なモジュール"ManagedPipelineHandler"があります。最も考えられる原因:

  • マネージハンドラーが使用されます。ただし、ASP.NETがインストールされていないか、完全にはインストールされていません。
  • ハンドラーモジュールリストの構成に誤植があります。あなたが試すことができるもの:
  • マネージハンドラーを使用している場合は、ASP.NETをインストールします。
  • ハンドラーモジュールの名前が正しく指定されていることを確認してください。モジュール名は大文字と小文字が区別され、modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"という形式を使用します

ASP.NETを完全にインストールしたと確信しています。

5
René

私は解決策を見つけました。どうやら、それは私の.NET 4.0インストールを登録しませんでした。このプログラムをパラメーター付きで実行するだけでした:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"、それを修正しました!

パス"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"は、インストールされている.NET Frameworkのバージョンによって異なる場合があります。
必要なパスを確認するには、"C:\Windows\Microsoft.NET\Framework\"、フォルダ名を確認し、それに応じて次のように調整します:"C:\Windows\Microsoft.NET\Framework\<version>\aspnet_regiis.exe"

3
René

バージョンごとに特定のコマンドコンソールがあります。そのため、vs固有のコマンドコンソールで既に設定されているため、長いパスの問題が回避されます。 VSプログラムディレクトリに移動してコマンドコンソールを見つけ、それが開いたら、次のように入力します。

aspnet_regiis.exe -i
1
rags

特定のアプリプール内の各アプリが同じバージョンの.NET Frameworkをターゲットにしていることを確認する必要があります。バージョンが混在している場合は、複数のアプリプールを作成する必要があります。

0
squillman

アプリケーションは、実行するフレームワークのバージョンを指定しませんでした。明らかに(この場合は)2.0フレームワークとして実行する必要があります。別のアプリプールを作成し、このアプリをそのアプリプールに分離します。フレームワークのバージョンを互換性のあるアプリプールに割り当てることができます(この場合は2.0)

0
Jim B