C# 在会话启动而不是应用程序启动时注册路由

C# 在会话启动而不是应用程序启动时注册路由,c#,asp.net,routing,global-asax,application-start,C#,Asp.net,Routing,Global Asax,Application Start,我正在尝试根据每个会话在.net中注册路由集合。我的代码工作正常,你转到了网站/用户名,它加载了正确的子页面,但是你必须重新启动应用程序,转到网站/用户名2来加载这些子页面。但是,当应用程序重新启动时,第二个应用程序工作,但第一个应用程序不工作 是否有某种方法可以使用system.web.routing为每个会话而不是每个应用程序创建不同的路由集合。路由链接到路由名称,并为web应用程序全局存储,因此您无法真正定义每个会话的路由。 你能举例说明为什么不同的用户需要不同的路线吗? 最有可能的解决方

我正在尝试根据每个会话在.net中注册路由集合。我的代码工作正常,你转到了网站/用户名,它加载了正确的子页面,但是你必须重新启动应用程序,转到网站/用户名2来加载这些子页面。但是,当应用程序重新启动时,第二个应用程序工作,但第一个应用程序不工作


是否有某种方法可以使用system.web.routing为每个会话而不是每个应用程序创建不同的路由集合。

路由链接到路由名称,并为web应用程序全局存储,因此您无法真正定义每个会话的路由。 你能举例说明为什么不同的用户需要不同的路线吗?
最有可能的解决方法是简单地使用路由模式,比如将RouteUrl设置为“member/logo/{size}/{UserName}.jpg”,在这里您可以在通过Page生成路由url时指定用户名和大小。GetRouteUrl()

路由链接到路由名称,并为web应用程序全局存储,因此,您不能真正定义每个会话的路由。 你能举例说明为什么不同的用户需要不同的路线吗?
最有可能的解决方法是简单地使用路由模式,比如将RouteUrl设置为“member/logo/{size}/{UserName}.jpg”,在这里您可以在通过Page.GetRouteUrl()生成路由url时指定用户名和大小。RouteTable.Routes是静态的,因此在所有会话中共享相同的路由。因此,每个会话不能有不同的路由集。

RouteTable.routes是静态的,因此所有会话共享相同的路由。因此,每个会话不能有不同的路由集。

您可以创建自己的路由处理程序。请看:


使用这种方法,您将能够根据每个请求进行不同的路由。然后,每个请求都可以查看会话值以获得正确的处理程序。

您可以创建自己的路由处理程序。请看:


使用这种方法,您将能够根据每个请求进行不同的路由。然后,每个请求都可以查看您的会话值,以获得正确的处理程序。

我能够在应用程序begin请求中注册路由,并以我现在希望的方式注册路由。我希望每个会话有不同的路由,因为我有多个站点在同一个域上运行不同的路由。我刚刚清除了begin请求对象中的路由,并根据路由重新注册了路由。实际上它相当快。感谢大家的回复,这引发了解决方案如果你清除路由并为每个用户重新定义它们,那么两个用户如何同时使用你的站点?我能够在应用程序begin请求中注册路由,并以我现在希望的方式运行。我希望每个会话有不同的路由,因为我有多个站点在同一个域上运行不同的路由。我刚刚清除了begin请求对象中的路由,并根据路由重新注册了路由。实际上它相当快。感谢所有人的回复,这引发了解决方案如果你清除路由并为每个用户重新定义它们,那么两个用户如何同时使用你的站点?