前天在调试asp.net+sql server环境,点这里下载sql server 2005企业版。在测试一个用asp.net+mssql写的留言本程序的时候,报错,提示无法识别的属性“type”
如下图:
完整的出错信息看上图。这种情况一般来说是因为.net的版本问题造成的。我们看到最后一行显示ASP.NET版本为1.1.4322.2407。我要把它改成.NET2.0。打开IIS6,右击属性,居然没有发现ASP.NET的配置选项,虽然好久没搞这个了,但是印象中绝对是有一个ASP.NET选项卡的。我很奇怪,我以为是.net framework 2.0没安装,下载下来安装,提示已经安装了,打开“删除添加程序”,的确已经安装了。查看IIS的“Web 服务扩展”,发现已允许asp.net1.1和asp.net2.0,如下图:
网上一搜,发现有人说先安装.NET再安装IIS的话,会导致IIS无法解析.NET。确切地说应该不是无法解析,而是.NET的模块没有加载到IIS里。想想我好像就是这种情况。这样的话就要重新注册一遍.NET。
这里要明白两点:
1,如果是只安装了.net framework 1.1 在iis中是不显示那个选项卡的。默认就会支持asp.net1.1。在安装了.net framework 2.0后,iis站点属性里才会有asp.net的选项。
2,安装asp.net2.0后,请关闭iis窗口,重新打开iis,iis站点属性里才会有asp.net的选项 。
3,所以现在IIS里没有Asp.net配置选项的话,就要重新在IIS中注册asp.net,方法如下:
(1) 打开命令窗口。开始-运行-CMD。
(2) 浏览到要使用的 Aspnet_regiis.exe 版本的目录(请记住,每个版本的 .NET Framework 都有自己的 Aspnet_regiis.exe 版本)。该文件通常位于下列目录中:C:\Windows\Microsoft.NET\Framework\versionNumber
输入以下代码,回车,等待其安装完成 。
如:C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis -i
如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i
因为我这里只想用asp.net2.0,所以我只注册了一下asp.net2.0,如下图:
完成之后我重启一下服务器,发现IIS里的ASP.NET选项回来了。其实不用重启电脑,重启一下IIS Admin Service服务应该也可以。再次测试网站就没有再出现无法识别的属性“type”的情况。
还有一种情况会导致IIS里没有asp.net选项卡,就是32和64位操作系统的问题,解决方法如下:
1,在服务中停止IIS Admin Service(同时会提示是否停止对应的其他,将这些服务都停止)。
2,打开文件” C:\WINDOWS\system32\inetsrv\MetaBase.xml”,
删除Enable32BitAppOnWin64='TRUE'这句话后保存文件。这一句的意思就是运行32位的应用程序在64的Windows系统上,删除它即把它关闭。
3,重新启动IIS Admin Service服务和IIS后就可以看到ASP.net选项卡了。