![为什么 IIS 拒绝提供 ASP.NET 内容?](https://linux22.com/image/481140/%E4%B8%BA%E4%BB%80%E4%B9%88%20IIS%20%E6%8B%92%E7%BB%9D%E6%8F%90%E4%BE%9B%20ASP.NET%20%E5%86%85%E5%AE%B9%EF%BC%9F.png)
我的 Windows Server 2003 Std 服务器拒绝提供 ASP.NET 内容。它可以很好地提供常规 html,但任何 .net,甚至带有 ASPX 扩展名的一行 html 文件都会默默失败。
我尝试过的事情:
- 失败时,事件日志或 IIS WWW 日志中没有任何内容。
- Fiddler 没有显示任何响应
- 我重新安装了.NET
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -U
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -I
- 我向所有可能相关的用户(IUSER*、ASP.NET 等)授予了我能想到的所有极高的权限(完全控制、读取、写入等)。
- 我确认 ASP.Net v1 和 v2 Web 服务扩展在 IIS 中是“允许的”
- 确认服务器管理器已启用 IIS 和 ASP.Net 角色
再次重申:场景如下:
- http://localhost/Test/Default.htm<-- 效果很好!
- http://localhost/Test/Default.aspx<-- 默默地轰炸,没有任何信息
任何指导都将不胜感激!
解决方案:我按照以下说明重新安装,现在可以正常工作了。谢谢大家!
答案1
我遇到过几次同样的问题,每次的解决方案都是:
- 进入控制面板
- 转到“Windows 组件”区域
- 删除 IIS,让它卸载
- 重启
- 重新添加 IIS(确保在勾选框时包含 ASP.NET 内容)。
- 运行这个:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -I
我曾经在客户现场花了几个小时调试这个问题,这就是诀窍。从那时起,每次发生这种情况,这就是解决办法。
我不确定根本原因是什么,但是我们曾经试图找出原因,并且彻底破坏了 IIS 配置,甚至让 Microsoft RDC 进入有问题的服务器 2 到 3 个小时,但他们也无能为力。
因此我将其视为 ASP.NET/IIS 中未记录的错误。
答案2
尝试这个:http://localhost/blah.aspx(应该是不存在的页面)。如果它给出 404 而不是 asp.net 错误页面,则 asp.net 没有运行;如果它给出 403 错误,则站点的权限错误。
以下清单或许能有所帮助:
- IIS 是否正在运行?
- 你的网站正在运行吗?
- 您的网站的应用程序池是否正常运行?
ASP.NET 是否安装并注册?
cd /d %windir%\Microsoft.Net\Framework\v2.0.50727
aspnet_regiis-ua
aspnet_regiis -i -启用
ASP.NET 正在运行吗?
检查网站属性中的“ASP.NET”选项卡。确保它使用的是正确的版本。
- 权限设置是否正确?
检查站点属性中的“主目录”选项卡,检查“执行权限”设置,应将其设置为允许脚本。还要检查“Web 服务扩展”以确保允许运行 asp.net。
答案3
打开 IIS 管理器,单击左侧窗格中的 Web 服务扩展文件夹。然后单击右侧窗格中的 ASP.NET 扩展并单击允许按钮。
答案4
根据上一个答案,您无需卸载/重新安装 IIS 即可重新建立 .net 支持。只需运行位于相应框架文件夹中的 aspnet_regiis.exe 实用程序,例如:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727