【问题标题】:asp.net global.asax Application_BeginRequestasp.net global.asax Application_BeginRequest
【发布时间】:2010-11-04 14:39:17
【问题描述】:

我有一个站点,其中有多个指向它的域。我想将所有请求重定向到主域,因此我创建了一个名为 RedirectToRealDomain("domain.com") 的方法来检查所有请求并将其重定向到我的首选域

目前它存在于 Session_Start 但我计划将其移至 Application_BeginRequest 事件。

这是个好主意吗?据我了解 Session_Start 仅在新会话开始时引发,但 Application_BeginRequest 在所有请求中引发。 RedirectToRealDomain 方法除了比较字符串之外不进行任何数据库查找或任何昂贵的操作。

【问题讨论】:

    标签: c# asp.net global-asax


    【解决方案1】:

    是的,这会起作用。我使用 HTTP 模块的“BeginRequest”事件在我的网站上做同样的事情。

    另一种选择是创建第二个 IIS 站点并将所有其他域指向该站点。然后您可以使用 IIS 管理控制台将所有请求重定向到第一个站点。

    【讨论】:

    • 伟大的思想都一样。 +1。 (并不是说我的头脑真的那么好,但你知道那句话......)
    • @David 你的意思是把 RedirectToRealDomain 放到 Application_BeginRequest 而不是 Session_Start 会更好吗?
    • 我想我是模棱两可的。我已经编辑了答案以明确这一点。
    【解决方案2】:

    这应该没问题,但是在 IIS 中还有其他非编程方式可以做到这一点,我认为这会减少开销,并且可能是一种更“正确”的方式。不过,您对何时引发事件的理解是正确的,并且您的解决方案应该可以工作,并且不会过多地消耗服务器。

    请参阅此处了解如何在 IIS 中执行此操作:

    http://www.getfoundnow.com/iis_301_redirect.htm

    【讨论】:

    • 我知道,但我想创建一套并忘记解决方案。使用 iis 如果我移动站点,我将不得不再次设置 evrything。
    • 好的。然后继续执行计划 A。将其放入 Applicaiton_BeginRequest。
    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多