做了个小项目,用了URLRewriter在本地调试的时候可以运行,但发布成网站后,在iis下却不能运行。。看了网上很多都说不知道怎么解决,有的解决办法是建立*.*到aspnet_isapi.dll的映射就可以我这样做了下,html的就行了。。但如果没有扩展名的映射应该怎么弄呢?比如说http://localhost:81/news32.aspx映射为http://localhost:81/news32这样该怎么弄????
还有个疑问就是,如果发布到服务器上,我有那么大的权限去添加这个*.*到aspnet_isapi.dll的映射吗?最后就想找个能用代码解决的方案!
还有个疑问就是,如果发布到服务器上,我有那么大的权限去添加这个*.*到aspnet_isapi.dll的映射吗?最后就想找个能用代码解决的方案!
开发平台:NET2.0,VS2005
已经过测试,实现了伪静态技术的实现,可以实现诸如Show.aspx?MyID=1成功转换为1.html的转换,现在将成果与大家分享一下: 引入:我们为什么不直接使用Show.aspx?MyID=1这种访问方式而非要使用1.html这样的访问方式呢,也许很多人都觉得没有必要再讲解下去,但是小弟也是初学者,考虑到很多现在和我一样水平的爱好者,都曾经为此烦恼不已,或者正在尝试无数次而未果,因此,此文仅针对菜鸟级的同胞们,希望对你们有所帮助,至于达人们看到了,希望提出更多的宝贵意见或建议,以咨鼓励本小虾,以咨为更菜的小虾们提供更多的更简单的更通用更实用的方法!!!
http://www.itokit.com/ 专业的web开发、编程、WEB页面设计等交流论坛
好了,废话少讲,言归正传,以下为俺的实现过程: ①:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面; ②:下面就是Web.Config文件的配置了,当然,配置过程相当简单:
http://www.itokit.com/ 专业的web开发、编程、WEB页面设计等交流论坛
1:先添加这个<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/(.[0-9]*)\.html</LookFor>
<SendTo>~/ArticleDetail.aspx?MyID=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig> 2:再添加这个<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers> 至此,已成功一大半,上面两个都添加到Web.Config,添加到什么位置看来没必要讲了! 最后一步:在IIS中找到自己的虚拟目录网站,点属性,然后点配置,然后弹出应用程序配置对话框,选择添加,添加的可执行文件路径为c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,扩展名为.html
IIS 6.0 是不能添加这个*.*到aspnet_isapi.dll的映射.你必须这样做:操作方法:IIS站点属性 ->主目录 -> 配置选择或输入C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
取消"确认文件是否存在"前的钩.
确定
如果是asp.net 2.0的话就选择 v2.0的aspnet_isapi.dll
2 权限是必要的.
只能在IIS 5.1中添加添加这个*.*到aspnet_isapi.dll的映射的.
IIS 6.0 是不能添加这个*.*到aspnet_isapi.dll的映射. 你必须这样做: 操作方法:IIS站点属性 ->主目录 -> 配置
选择或输入c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll取消"确认文件是否存在"前的钩.
确定