最近帮别人做了一个小网站,在本机部署测试的时候,竟然浏览不了aspx后缀的页面,但可以浏览html页面,由此想到了IIS对静态页和动态页不同的处理方式。
当服务器接收到一个http请求时,IIS需要决定如何去处理这个请求,根据文件的后缀名来判别如何处理该请求,获得后缀名之后,会在服务端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,并且这个文件并不受服务器端的保护,那么IIS将直接把这个文件返回给客户端。(如:*.html,*.htm,js,*.jpg,*.png等)
能够处理各种后缀名的应用程序,通常成为ISAPI应用程序(Internet Server Applicatin Pogram Interface,互联网服务器应用程序编程接口)。虽然是应用程序,但实际上是一个接口,起到一个代理作用,它的主要工作是映射所请求的页面与此后缀名相对应的实际的处理程序。
通过以上内容,以及实际部署中遇到的问题,可以猜想到是扩展程序的问题,扩展程序找不到对应的处理程序。
为何会造成此问题?
最近刚重装过系统,系统装好后,先安装的vs2013后安装的IIS导致的,如果先安装IIS再安装vs,系统会自动配置IIS,无需手动配置。
MSDN:http://msdn.microsoft.com/zh-cn/library/k6h9cz8h.aspx
可参考MSDN上的说法,重新注册.netframework。
打开cmd
找到framework的路径,我的vs默认安装在c盘,路径为:C:/Windows/Microsoft.NET/Framework/v4.0.30319
输入cd 进入该目录,输入命令aspnet_regiis.exe -i
重新浏览,问题解决。
这是在实际操作中出现的问题,这个问题还真不是一般人能遇到的,大家估计都是正常顺序安装的,很少能遇到,记录一下,这里希望能帮到遇到跟我一样问题的朋友。
新闻热点
疑难解答