我正在开发一个小型CMS,很有趣,在此过程中,我在应用程序启动时从数据库注册了路由。用户可以自己添加路线。问题在于此路由存储在数据库中,因此只有在应用重启后才注册。

是否可以在不重启应用的情况下重新注册路由?

如果没有,如何按需重新启动应用程序?

干杯,

伊恩

最佳答案

不,您可以动态添加和删除路由。 RouteTable.Routes只是具有RouteCollectionAdd成员(或者,如果您愿意,Remove)的Clear

请注意,Web服务器是多线程的,因此您需要使用RouteCollection的锁定协议(protocol)。特别是,这意味着 GetWriteLock :

var routes = RouteTable.Routes;
var newDynamicRoute = new Route(...);
using(routes.GetWriteLock()) {
    routes.Remove(dynRoute);
    dynRoute = newDynamicRoute;
    routes.Add(dynRoute);
}

关于asp.net-mvc-2 - 注册动态路由,需要重新启动应用程序吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3958663/

10-13 01:21