• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

使用HttpHandler接管*.aspx时,如何让Default.aspx成为目录默认文档?

CatChen 2005-07-14 12:27:44
虽然在IIS里面设置了Default.aspx是目录的默认文档,同时HttpHandlerFactory里也会提供Default.aspx的返回,但访问http://mysite就返回403(访问http://mysite/Default.aspx是可以的)。

对于这个问题,我以前的临时解决方案是再放一个Default.asp进去,它的功能仅仅是Response.Redirect "Default.aspx"。但我现在不想继续这样做,希望找个好一些的方法。

WSS和SPS2003是能够让Default.aspx成为默认文档的,我检查过它的IIS主机设置,唯一能够发现不同的就是它添加了ISAPI Filter。我想知道,能否用HttpModule实现自动把"/"的访问重定向到"/Default.aspx"吗?,还是说一定要真正的ISAPI Filter才能够做到?.NET能否做真正的ISAPI Filter?
...全文
246 点赞 收藏 7
写回复
7 条回复
CatChen 2006年06月19日
UP
回复 点赞
CatChen 2006年02月24日
现在我明白了,这个是无法只用HttpHandler解决的,一定要用HttpModule拦截了/的Request然后重订向给/Default.aspx才行。
回复 点赞
昵称都被占完求了 2005年11月24日
关注
回复 点赞
u20051121 2005年11月24日
up
回复 点赞
pucumtaa 2005年07月14日
up
回复 点赞
CatChen 2005年07月14日
按理说不会?但是我每次都是这样哦!

我甚至试过在使用HttpHandler接管*.aspx时,也加入一个空白的Default.aspx文件,希望IIS认为有这个文件然后就转交给/Default.aspx处理,但实际上是不行的。我觉得IIS的处理过程应该是这样的:
1.按照优先顺序寻找第一个匹配且存在的默认文档(磁盘上的文件)
2.如果该文件是被某ISAPI关联的(例如asp或aspx),就使用ISAPI去处理它们
3.如果找不到就返回403
但是它不会知道ASP.NET这个ISAPI实际上接管了*.aspx(包括不存在文件的)。

实际上以前SPS2003就很让我觉得奇怪,为什么访问/,地址栏总是自动变成/Default.aspx呢?明明默认文档就能够允许/指向/Default.aspx啊。现在我明白了,原来真实存在的Default.aspx和ISAPI中虚拟存在的对于IIS来说是两回事。
回复 点赞
sykpboy 2005年07月14日
按理說,不會出現你說的狀況...
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告