我正在使用IIS7.5。我有一个简单的ASP.NET webforms站点,它使用global.asax中的基本URL重写,拦截.aspx页面的请求并将它们传递给各种模板页面。
例如,您可以请求http://www.mysite.com/default.aspx。在global.asax中,我首先检查它是否存在为“真实”页面。如果没有,我去数据存储获取详细信息并重定向到template.aspx?page = default(或类似的东西)。
这一切都很棒。但是,有一个问题。如果我浏览http://www.mysite.com/default.aspx,我会得到我期望的页面。如果我在web.config或IIS中将默认文档设置为default.aspx,则浏览到http://www.mysite.com/我收到有关不允许目录浏览的错误。
为什么IIS在这种情况下会忽略默认文档?这似乎是因为文件“default.aspx”不存在。如果是这种情况,是否有针对该问题的解决方法?
为了澄清,我没有对IIS系统的控制,它是真正基本的托管,虽然我可以请求一些更改,所以我不能使用任何URL重写模块。
答案 0 :(得分:1)
针对您的情况的解决方法:将Index.aspx创建为默认文档作为物理文件,并将用户重定向到Default.aspx URL。因此,当用户访问mysite.com/时,index.aspx将启动并强制重定向到default.aspx,然后可以处理模板重定向逻辑。