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

cat_hsfz 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?
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat_hsfz 2006-06-19
  • 打赏
  • 举报
回复
UP
cat_hsfz 2006-02-24
  • 打赏
  • 举报
回复
现在我明白了,这个是无法只用HttpHandler解决的,一定要用HttpModule拦截了/的Request然后重订向给/Default.aspx才行。
  • 打赏
  • 举报
回复
关注
u20051121 2005-11-24
  • 打赏
  • 举报
回复
up
pucumtaa 2005-07-14
  • 打赏
  • 举报
回复
up
cat_hsfz 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
  • 打赏
  • 举报
回复
按理說,不會出現你說的狀況...

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧