客户使用Windows server 2012 运行ASP.NET的网站,访问任何ASPX的页面都是提示404的报错,刚开始怀疑是没有安装.net的版本导致的,查看.net的版本有正常安装了。
尝试解决方案
如果安装了.NET了,Aspx网站访问网站出现404,参考以往的经验使用在命令行输入以下命令启用 Aspx.net。
1、CMD运行启用 .NET 2:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
提示:pkgmgr.exe 被弃用了,需要使用DISM.exe进行安装、卸载配置
2、CMD命令启用 .NET 4.5:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
提示:此操作系统版本不支持此选项
C:\WINDOWS\system32>c:\windows\microsoft.net\framework64\v4.0.30319\aspnet_regiis.exe -i
Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0
用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。
版权所有(C) Microsoft Corporation。保留所有权利。
开始安装 ASP.NET (4.0.30319.0)。
此操作系统版本不支持此选项。管理员应使用“打开或关闭 Windows 功能”对话框、“服务器管理器”管理工具或 dism.exe 命令行工 具安装/卸载包含 IIS8 的 ASP.NET 4.5。
有关更多详细信息,请参见 http://go.microsoft.com/fwlink/?LinkID=216771。
ASP.NET (4.0.30319.0)安装完毕。
最终解决方法:
在互联网上参考了非常多的文章,才找到了解决方案
1、控制面板 - 程序和功能 - 启动或关闭windows功能 - Internet Information services - 万维网服务 - 应用程序开发功能勾选:
ASP.NET 3.5
ASP.NET 4.7
ISAPI扩展
ISAPI筛选器
.NET Extensibility 3.5
.NET Extensibility 4.7
2、在添加角色和向导中确认安装
3、安装完成后,测试服务器已经支持.net了,完美解决。
总结
在windows server 2012或更高的windows server版本是启动和安装.NET均需要通过服器管理界面的添加角色来完成的
注意
腾讯云服务器,如果无法编译,可以查询C:\Windows\Temp目录,IIS user 和net server是否有完全权限。
C:\Windows\Temp 进行授权