我有一个代码在应用程序的 Application_AcquireRequestState
事件中注册路由。路由注册后,我在 Http 运行时缓存中设置一个标志,这样我就不会再次执行路由注册代码。在这个事件 Application_AcquireRequestState
中注册路由有一个特定的原因。
应用程序池重新启动后,如果收到有效(匹配路由)请求,路由注册代码将启动,但 IIS/ASP.Net 不会为该请求提供服务,它会返回 404。后续有效请求是一切正常。
我想确保即使是第一个请求也能正确处理。
是否可以重写请求,以便在完成路由注册后,如果 url 与已注册的路由之一匹配,我们可以以某种方式尝试重播请求?有什么办法可以解决这个问题吗?
最佳答案
如下所示
及以下
和下面的 SO 线程
When does routing take place in the pipeline?
您可能需要针对 AuthenticateRequest
或 PostAuthorizeRequest
事件之间的某些内容来进行 URL 注册,因为路由会在那之后发生
Url 路由发生在 PostAuthorizeRequest
事件之后,由于路由已经被注册,第一个请求也将得到很好的服务。
关于c# - 在 Application_AquireRequestState 事件中用 POST 数据重写 Url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309071/