投稿 评论 顶部

关于asp.net网站URLRewriter开发布署IIS中遇到的问题

佚名 网络安全

当用户对你说,我们的网站起码要像个html的样子吧?于是,我们不得不去找资料,查看各种关于伪静态的东东,所幸,我还是找到了一位大神的文章:

Ferry's blogs URL重写(使用微软URLRewriter)


膜拜完大神的文章,基本上也解决了问题,但实践是检查你学到多少知识的真理。当我在本地开发完成,发布到本地IIS上运行的时候,各种问题就出来了。当开始是提示我各种404、500,无权限查看文档目录,当时我欲哭无泪啊,各种找解决办法,后来在万能的百度下,又到了一些大神的解决办法,解决了能够正常运行在IIS下后,开启网站看了一下,又点了一下其它伪静态地址页面,结果404。

这下又郁闷了,又去找资料,最后皇天不负有心人,问题还是解决掉了,现将经历叙述如下:

一、开发环境:

VS2010+Sql server 2008 + iis 7.x

二、代码运行框架:.net framework 4.0 强调这一点非常重要!!因为后面碰到的问题就是这里引起的!

三、开发完成布署

1、在发布之前,需要确认一下你的代码程序集的框架是运行在哪个版本上的,我的是运行在4.0上,查看过程如下:

右键该项目-》“属性”,在弹出的窗体中找到“应用程序”,此时里面显示了一条“目标框架”,这里就是你目前项目使用的版本。

2、确认好之后,发布。

3、接下来就要配置IIS了。

(1)添加你的网站到IIS中后,接下来,我们要确认IIS运行的.net framework版本,更改如下:

(图一)

这里就是我的痛苦源泉所在(原谅我作为开发新手,没什么经验吧),修改与项目运行版本一致后,还要解除ISAPI和CGI限制。在图一中可以找到,

(2)还需要把你的程序池的托管管道模式切换成“经典”模式,在“集成”下运行不了,还是会发现404!

(3)最后,打开你的网站的主目录页面,“找到处理程序映射“

进去之后,添加一个DLL,我本地的路径如下:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll


添加好了之后,那么恭喜你,你已经完成好IIS的配置,尽情地享受喜悦吧!


另外,再讲一些额外的问题:

(1)因为服务器供应商那边可能会不提供允许你修改IIS配置,这时候就需要你自己想办法去找一台可以配置IIS的主机了,我目前发现云主机的是可以提供这种的配置的,当然,最好你还是问一下服务器供应商。

(2)原来我刚开始学C#的时候,开发学的就是用MVC做的网站,但后来没用,转用WinForm结构开发,发现用MVC开发实现伪静态实在是So easy!强大的路由配置,简直随心所欲!哎,这段时间估计得去好好学学MVC,转战了!