在IIS7中将.NET Framework版本更改为4.0后发生500内部服务器错误

我刚刚在Microsoft Technet 指定了应用程序池的.NET Framework版本(IIS 7)说明,在IIS7pipe理器中更改了我的.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上。

编辑:

我终于find了如何得到错误的细节。 他们来了:
处理程序"PageHandlerFactory-Integrated" "ManagedPipelineHandler"在模块列表中有一个错误的模块"ManagedPipelineHandler" 。 最可能的原因:

  • 使用托pipe处理程序; 但是,ASP.NET未安装或未完全安装。
  • 处理程序模块列表的configuration中存在印刷错误。 你可以尝试的东西:
  • 如果您使用托pipe处理程序,请安装ASP.NET。
  • 确保处理程序模块的名称已正确指定。 模块名称区分大小写,并使用格式modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"

我相信我已经完全安装了ASP.NET。

我find了解决scheme。 显然,它没有注册我的.NET 4.0安装。 我只需要运行这个程序的参数: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i" ,并修复了它!

请注意,path"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"可能因安装的.NET Framework版本而异!
若要查看所需的path,请打开"C:\Windows\Microsoft.NET\Framework\" ,并查看文件夹名称,并相应地进行调整,如下所示: "C:\Windows\Microsoft.NET\Framework\<version>\aspnet_regiis.exe"

有特定的vs版本的特定命令控制台。 所以它可以避免这种长path头痛,因为它已经在vs特定的命令控制台中设置了。 进入VS程序目录并find命令控制台,打开时只需键入

 aspnet_regiis.exe -i 

您需要确保任何给定应用程序池中的每个应用程序都以.NET框架的相同版本为目标。 如果你有混合版本,那么你需要创build多个应用程序池。

应用程序没有指定运行的框架的版本。 显然(在这种情况下)它想运行一个2.0框架。 我会创build另一个应用程序池,并隔离该应用程序池中的应用程序。 您可以将框架的版本分配给兼容的应用程序池(本例中为2.0)