加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在Web Gardens中添加动态路由

发布时间:2020-12-16 03:16:16 所属栏目:asp.Net 来源:网络整理
导读:我正在向RouteTable动态添加路由,但更新不会传播到其他进程: using (RouteTable.Routes.GetWriteLock()){ RouteTable.Routes.MapPageRoute( String.Format("_{0}",routeName),routeName,"~/Template.aspx",true,new RouteValueDictionary {{"page",routeNam
我正在向RouteTable动态添加路由,但更新不会传播到其他进程:

using (RouteTable.Routes.GetWriteLock())
{
    RouteTable.Routes.MapPageRoute(
        String.Format("_{0}",routeName),routeName,"~/Template.aspx",true,new RouteValueDictionary {{"page",routeName}});
}

这正确地创建了正确的路由,因为我有时可以访问它,但是如果切换到新进程或稍后再尝试,我就无法访问该页面.
如果我然后重新启动应用程序池,它工作正常.此外,如果我等待足够长的时间,几个小时,当流程被回收,路线工作.

我认为这是在一个进程上创建路由的结果,并且仅在未来的进程回收中.

干草关于如何推动路线更新的想法?

解决方法

我认为问题在于路由的实现.我们可以看到 here – RouteTable.Routes是静态的.所以这里的问题不是为什么路由不会传播到所有进程,而是更多的web园问题中的静态变量.

试着想一个解决方法,我能想出的是类似于集群中的Web园艺进程/ Web服务器之间的共享缓存的解决方案.您需要将动态路由列表OutProc以及数据库或静态文件列入.然后,您的代码需要跟踪这些文件以进行更改,并在将新路由添加到外部资源时添加新路由.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读