アプリケーションプールの.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"
があります。最も考えられる原因:
modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"
という形式を使用しますASP.NETを完全にインストールしたと確信しています。
私は解決策を見つけました。どうやら、それは私の.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"
バージョンごとに特定のコマンドコンソールがあります。そのため、vs固有のコマンドコンソールで既に設定されているため、長いパスの問題が回避されます。 VSプログラムディレクトリに移動してコマンドコンソールを見つけ、それが開いたら、次のように入力します。
aspnet_regiis.exe -i
特定のアプリプール内の各アプリが同じバージョンの.NET Frameworkをターゲットにしていることを確認する必要があります。バージョンが混在している場合は、複数のアプリプールを作成する必要があります。
アプリケーションは、実行するフレームワークのバージョンを指定しませんでした。明らかに(この場合は)2.0フレームワークとして実行する必要があります。別のアプリプールを作成し、このアプリをそのアプリプールに分離します。フレームワークのバージョンを互換性のあるアプリプールに割り当てることができます(この場合は2.0)