gpt4 book ai didi

asp.net - 在 HttpModule 中重写 URL 时,如何让波浪号 (~) 运算符起作用?

转载 作者:行者123 更新时间:2023-12-02 00:06:41 25 4
gpt4 key购买 nike

我正在使用 RewritePath()IHttpModule 中“路由”到子 Web 应用程序,就像在这个 IIS 布局中一样:

enter image description here

例如,当请求 /root/bleh 时,root 应用程序中的 HTTP 模块将路径重写为 /root/obw 希望 obw 应用程序将接管。

除了波浪号 (~) 无法正确解析外,这大部分都有效:

enter image description here

波浪号运算符在重写后解析为 root 网络应用,而不是 obw 网络应用。这似乎是 RewritePath()rebaseClientPath 参数要考虑的问题,但更改该参数似乎没有任何区别。

重写 URL 时如何让波浪号 (~) 运算符正确解析?

最佳答案

这是行不通的,因为 RewritePath 并非旨在将请求发送到不同的应用程序。你说它“大部分工作”,但实际上它并没有按照你的想法去做,而是在同一个应用程序中处理重写的请求。这就是为什么 ~ 没有解析到子应用程序的原因。

还有很多东西也行不通。例如

  • 如果您的 obw 文件夹下有 global.asax,它将被忽略
  • 您将无法加载来自 obw/bin 的程序集

换句话说,在 RewritePath 的上下文中,它只是将 obw 视为一个普通的子文件夹,而不是任何特殊的东西。

作为替代方案,您可以考虑使用 IIS URL Rewriter module ,不会有这个问题。

关于asp.net - 在 HttpModule 中重写 URL 时,如何让波浪号 (~) 运算符起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18005227/

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