在 IIS 7.5 中注册 .NET Framework 4.5

Posted

技术标签:

【中文标题】在 IIS 7.5 中注册 .NET Framework 4.5【英文标题】:Register .NET Framework 4.5 in IIS 7.5 【发布时间】:2014-06-04 03:40:24 【问题描述】:

拼图:

Windows 7 .NET Framework 4.5(已安装) IIS 7(版本 7.5.7600.16385) Visual Studio(2013 年终极版) MVC4(解决方案中的多个项目)

我在 Visual Studio 中运行的解决方案可以使用 IISExpress 按预期运行。

为了设置我的站点以使用 IIS,我尝试了以下步骤:

    右键单击解决方案中当前由 IISExpress 托管的项目。 点击属性。 将服务器下拉菜单从 IISExpress 切换到本地 IIS 尝试构建/运行应用程序

此时,我收到 HTTP 500.21 错误。

我也尝试使用 Visual Studio 的命令提示符(以管理员身份)运行 aspnet_regiis.exe -i,但每次运行命令时,都会收到以下错误:

命令“aspnet_regiis.exe”无效。

我还确认我确实安装了正确的aspnet_regiis.exe(通过检查here)(.NET Framework 版本 4(64 位系统))。

需要做什么?

【问题讨论】:

我在安装 VS2015 CTP 后也遇到了这个问题。对我来说,解决方法是卸载 CTP,以及它带来的 .NET 预览版。然后我重新安装了 .NET 4.5.1,消息消失了。 【参考方案1】:

您可以在以下目录中找到 aspnet_regiis:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

转到目录并在那里运行命令表单。我猜你的 PATH 变量中缺少路径。

【讨论】:

根据我原始帖子中的link,我已经知道我拥有正确版本的 aspnet_regiis.exe 但是文档没有明确说明(如果有的话) state 是您(@peer)在您的回复中解释的内容。我的解决方法是 1) 以管理员身份打开 cmd。 2)cd \Windows\Microsoft.NET\Framework64\v4.0.30319 3)aspnet_regiis.exe -i。很好,谢谢!【参考方案2】:

在本地 IIS 上托管 asp.net 4.5/4.5.1 Web 应用程序 1)确定 IIS 安装在 Visual Installation Installataion 然后 aspnet_regiis 将已经注册到 IIS

如果不安装 IIS 然后通过 cmd Editor 向 IIS 注册 aspnet_regiis

对于 VS2012 和 32 位操作系统,在命令编辑器上运行以下代码:

1)先安装IIS,再安装

2)

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319   

  C:\Windows\Microsoft.NET\Framework\v4.0.30319> aspnet_regiis -i

对于 VS2012 和 64 位操作系统,命令编辑器上的代码如下:

1)先安装IIS,再安装

2)

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319    
  C:\Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis -i

按照上述步骤,在 IIS 中注册的 VS2012 的当前版本 托管(VS2012 Web APP)

创建 VS2012 Web 应用程序(WebForm/MVC) 然后构建应用程序 右键单击 WebApplication(WebForm/MVC) 转到“属性” 单击“Web”选项卡,然后单击“使用本地 IIS Web 服务器” 然后取消选中“使用 IIS Express” (如果 Visul Studio 2013 从下拉列表中选择“本地 IIS”) 提供项目 URL,例如“http://localhost/MvcDemoApp” 然后单击“创建虚拟目录”按钮 然后通过 Prssing 'Window + R' 运行命令打开 IIS 并键入 'inetmgr' 和 'Enter' (或 'OK' 按钮) 然后展开您成功托管的“站点->默认网站”。 如果仍然出现任何服务器错误 比如“找不到资源”。 然后在 web.config 中包含以下代码

 <configuration>
     <system.webServer>
         <modules runAllManagedModulesForAllRequests="true"></modules>

And Run Application

如果仍然出现问题 通过以下方式检查应用程序池:在 iis 中右键单击应用程序->管理应用程序->高级设置->常规。您会看到应用程序池。 然后关闭高级设置窗口。 单击“应用程序池”,您将在中间窗口中看到所有应用程序池。 右键单击托管应用程序的应用程序池(DefaultAppPool)。 单击“基本设置”-> 将 .Net FrameWork 版本更改为->.Net FrameWork v4.0.30349

【讨论】:

【参考方案3】:

对于 Windows 8 和 Windows Server 2012,请使用 dism /online /enable-feature /featurename:IIS-ASPNET45 作为管理命令提示符。

【讨论】:

不是答案,但很有帮助。 如果要查询当前状态,请这样做:dism /Online /Get-FeatureInfo /featurename:IIS-ASPNET45【参考方案4】:

我两次陷入这种混乱,经过长时间的努力搜索并遵循其他人所做的一切,对我来说绝对没有任何效果,只能在 Windows 7 机器上卸载并重新安装 IIS,然后在 Windows server 2012 R2 上重新安装。

【讨论】:

感谢您的提示,但原帖并未使用或提及 Windows Server 2012 R2。【参考方案5】:

使用 .NET3.5 解决类似问题。

【讨论】:

这不会尝试解决 OP 询问的问题。

以上是关于在 IIS 7.5 中注册 .NET Framework 4.5的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 7.5 中托管的 .Net Remoting 服务中,如何删除“Server : IIS/7.5”标记表单响应头

IIS 7.5 ASP.Net 和远程共享

ASP.Net MVC 3/4 托管在 IIS 7.5 默认处理程序映射上

如何将超过 2Gb 的文件上传到 IIS 7.5 / .Net 4?

停止从 IIS 7.5 中的父 ASP.NET 应用程序继承 web.config

ASP.Net / IIS 7.5 无法识别用于 OutputCache 的 jMeter