gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:42:59 28 4
gpt4 key购买 nike

我正在向 RouteTable 动态添加路由,但更新没有传播到其他进程:

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

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

我认为这是在一个过程中创建路线的结果,并且仅在 future 的过程回收中。

关于如何推出路线更新的好主意?

最佳答案

我认为问题在于 Routes 的实现.如我们所见 here - RouteTable.Routes是静态的。所以这里的问题不是为什么路由没有传播到所有进程,而更多的是网络花园问题中的静态变量。

想了个变通办法,我能想到的是一个类似于集群中网络园进程/网络服务器之间的共享缓存的解决方案。您需要获取动态路由列表OutProc并放入数据库或静态文件。然后,您的代码需要跟踪这些文件的更改,并在将它们添加到外部资源时添加新路由。

关于asp.net - 在 Web Gardens 中添加动态路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21775984/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com