Windows Server 2008 64 位 IIS7.5 ASP.NET 发布问题

时间:2020-12-19 03:29:09

 

HTTP 错误 500.19 - Internal Server Error

错误信息: 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。

出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。要取消锁定可以运行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是错误信息中红字显示的节点名称。
如果modules也被锁定,可以运行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

注意:cmd.exe要以管理员身份启动,在c:\windows\system32下找到cmd.exe,右键管理员启动,输入上面的命令即可。

出现这个错误的原因:在使用ASP.NET 时,在添加IIS 7时没有选中的ASP.NET,也会出现这个错误。Windows Server 2008 64 位 IIS7.5 ASP.NET 发布问题

 

又出现“HTTP错误 404.17 - Not Found 请求的内容似乎是脚本,因而无法由静态文件处理程序来处理”。

Windows Server 2008 64 位 IIS7.5 ASP.NET 发布问题

原因:

从错误的提示来看,应该是请求的页面(这里如:.aspx)不被IIS所识别,即IIS在解析页面时,找不到后缀为.aspx的页面对应的处理程序映射,那么很可能就是IIS的处理程序映射没有配置好。为了验证这个想法,我们可以在IIS中找到“处理程序映射”,双击就会显示处理程序映射列表。然后我发现,对.net framework 4.0的处理程序映射都没有,只有2.0的配置,那么我想只需要将4.0的配置加进去即可。

Windows Server 2008 64 位 IIS7.5 ASP.NET 发布问题

解决方案:

     在上面“可能的原因”里面,我们确认了是缺少.net framework 4.0处理程序映射的原因,那么接下来,只需要解决这个问题即可。当然,手动添加模块映射可以解决问题,但为了省事,同时又命名规范,我们可以通过使用ASP.NET IIS注册工具(aspnet_regiis.exe)来快速处理,步骤如下:

      在开始菜单-->所有程序-->Microsoft Visual Studio 2010-->Visual  Studio Tools-->Visual Studio 命令提示(2010),输入以下命令:aspnet_regiis.exe –r  

但是在WINDOWS SERVER 2008  64位下-r不能用了,所以只有重新找到.NET的安排目录,直接在注册,aspnet_regiis.exe -i就行了,那个.NET 版本不对就注册那个。

参考:http://blog.163.com/twi_fly/blog/static/2075210682012728244394/