【问题标题】:Reset the asp.net mvc routes without resetting the app在不重置应用程序的情况下重置 asp.net mvc 路由
【发布时间】:2013-08-06 19:41:51
【问题描述】:

我想在 DB 中创建我的路由并将它们注册到 Global.asax.cs 的 Application_Start 中。一切都很好,但是数据库中的任何更改,我都必须重置应用程序才能让应用程序接收我的更改。

如果我可以在不重新启动应用程序的情况下重置路线,问题将得到解决。 我将如何实现它极客?一个自定义的httpmodule?或者...

【问题讨论】:

  • 我很想看到您以这种方式存储路由的基于数据库的解决方案。我在网上看到了一些例子,但它们通常是垃圾,或者还不够。

标签: asp.net-mvc model-view-controller


【解决方案1】:
public static void UpdateRouteRegistration() {
  RouteCollection routes = RouteTable.Routes;
  using (routes.GetWriteLock()) {
    routes.Clear();
    // repopulate route table here
  }
}

然后在 Application_Start 和其他任何需要初始化路由表的时候调用此方法。注意:这是凭记忆编写的,可能略有输入错误,但您明白了。 :)

【讨论】:

  • 我一直在寻找这个答案,因为我启动的某个时候,虽然我还没有测试过这个解决方案,但听起来很酷,但是会不会有影响,否则可以说重置发生在其他一些事务时是吗?如果这是一个博客项目,那么还可以,但可能不适合交易至关重要的其他类型,只是我的想法......
【解决方案2】:

愚蠢的答案,如果不重新启动应用程序就无法添加路由,并且在不重新启动的情况下调用 UpdateRouteRegistration() 将清除路由,因此您最终会在每个请求上抛出错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2019-07-30
    相关资源
    最近更新 更多