昨天有个朋友问我为什么他的机子不能跑asp.net的程序,他的机子是windows server2003,我开始以为是没有注册asp.net ISAPI扩展,上去后,果然如此,就给他注册好了.然后再运行一下程序,发现还是不能运行,就一直找原因,折腾了半天,才发现原来他禁止了运行asp.net程序,然后把它设置成"允许"就可以了.因为前些时间也有人问这个问题,所以就把它发布出来,下次如果别人遇到这个问题,也就可以从这篇文章找到答案.
不能运行asp.net程序的问题,一般情况下有两个原因:
1)没有注册ISAPI映射,也就是没有指定aspx,ascx等后缀文件的执行的dll动态库.从IIS的网站的属性,"主目录"选项卡的"配置"里面,可以看出是否注册了aspx,ascx的扩展,如果没有看到这些扩展名的注册,说明没有注册.这时应该运行aspnet_regiis.exe来注册一下,具体的操作如下:
在开始菜单选择"运行"
键入 cmd 并单击确定。
在命令提示符处键入:"/WINNT/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe=" -i 并单击确定。
完成后就注册上去了.
这个问题在2000和2003上机子都有这种问题
2)window server 2003下禁止了asp.net程序.window server 2003增强了安全性,默认情况下是允许运行asp.net程序的,不允许运行asp程序,有些时候可以忘了打开运行asp.net程序的设置了,具体的操作如下:
打开iis管理器,
点击web服务扩展,
选择"ASP.NET v1.1.4322",
点击"允许"就可以了.
这个问题仅在windows server 2003下才可能出现.
(并非所有的操作系统都是这个路径, 在windows server2003下在windows目录下,这个路径为.netframework的安装路径,一般都在windows系统目录下)