C# 在应用程序_AquireRequestState事件中使用POST数据重写Url
我有一个在应用程序的C# 在应用程序_AquireRequestState事件中使用POST数据重写Url,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我有一个在应用程序的事件中注册路由的代码。注册路由后,我在Http运行时缓存中设置了一个标志,这样我就不会再次执行路由注册代码。在此事件中注册路由有特定原因应用程序\u收单机构请求状态 重新启动应用程序池后,如果收到有效(与路由匹配)请求,则路由注册码生效,但IIS/ASP.Net不提供该请求,并返回404。随后的有效请求都可以正常工作 我想确保即使是第一个请求也得到了正确的处理 是否可以重写请求,以便在完成路由注册后,如果url与已注册的路由之一匹配,我们可以以某种方式尝试重播请求?有解决这个
事件中注册路由的代码。注册路由后,我在Http运行时缓存中设置了一个标志,这样我就不会再次执行路由注册代码。在此事件中注册路由有特定原因应用程序\u收单机构请求状态
重新启动应用程序池后,如果收到有效(与路由匹配)请求,则路由注册码生效,但IIS/ASP.Net不提供该请求,并返回404。随后的有效请求都可以正常工作
我想确保即使是第一个请求也得到了正确的处理
是否可以重写请求,以便在完成路由注册后,如果url与已注册的路由之一匹配,我们可以以某种方式尝试重播请求?有解决这个问题的方法吗?这是一种伪代码
,可以在Global.asax
中使用
private bool RootIsRegistered = false; //register Application level var
void Application_BeginRequest(object sender,EventArgs e){
if(!RootIsRegistered)
RegisterRoots();
}
这样,即使在第一次请求时,您也可以确保您的根已注册。如下所示
及以下
下面这条线
您可能需要针对AuthenticateRequest
或PostAuthorizerRequest
事件之间的某个事件进行URL注册,因为在此之后会发生路由
Url路由发生在PostAuthorizerRequest
事件之后,由于路由已经注册,第一个请求也会得到很好的处理。请添加一些代码,以便了解您如何注册路由。问题不在于我如何注册路由。路线注册工作正常,因为第二次请求之后它工作正常。我理解,但也许您可以在注册后处理该请求。为了知道这是否有效,有必要知道你是如何做到的。不是全部代码,但它是一个中间件还是一个动作过滤器。。。我知道你提到了一个事件,但它叫什么?根据这个,你可能需要瞄准AuthenticateRequest事件?@shankarsangli,完成。请看一看:-)我想你没有把问题陈述正确。请把问题再读一遍。