【问题标题】:Directing a request in IIS在 IIS 中定向请求
【发布时间】:2010-06-23 19:33:46
【问题描述】:

我有一组用经典 asp 编写的 web 服务。我想将它们转换为 asp.net,但这将是一个漫长的过程。我想一次转换几个函数,并使用某种路由机制来选择请求转到哪个版本(经典 asp 或 asp.net)。

更改用于访问 Web 服务和功能的 url 是不可能的。

要使用的函数由查询字符串中的参数定义。

似乎我不能使用 Server.Transfer 从 asp.net 转到 asp 或反之亦然。

有人有建议吗?

【问题讨论】:

    标签: asp.net iis asp-classic routing httprequest


    【解决方案1】:

    如果一切都将在同一台服务器 (IIS 7) 中运行,您可以使用 URL 重写来简单地使用正则表达式或映射(表)来做到这一点: http://www.iis.net/download/URLRewrite

    这样您的 URL 将不需要更改,您不需要任何额外的服务器或额外的“代理软件”,只需极快的早期重写(对于熟悉 apache 的人来说,就像 mod_rewrite)。

    如果您需要 FW 到单独的服务器(即您需要反向/转发代理),您最好的选择是使用应用程序请求路由 (http://www.iis.net/download/ApplicationRequestRouting),它实际上使用 URL 重写功能来拥有非常灵活的路由机制,并且具有极高的性能以及内核模式缓存和磁盘缓存等高级功能。

    【讨论】:

      【解决方案2】:

      不确定,但您是否考虑过某种代理服务器(apache mod proxysquid 等)将一个 url 上的请求重新路由到可能在不同服务器上的不同 url?您应该能够配置代理以将您的一个或多个服务调用重定向到相同或不同服务器上的 asp 或 asp.net 实现。

      享受吧!

      【讨论】:

      • 这与我的想法一致。但是,对于 IIS/Microsoft 服务器。我目前正在研究 url 重写,这看起来很有希望。
      • 我在 Windows 上使用过 apache。因此,设置单独的代理服务器并在其上托管其中一个应用程序,重定向到您的应用程序服务器
      【解决方案3】:

      您可以创建一个包装 Web 服务。

      使用新的命名空间编译您当前的经典 asp(以及您希望转换为的 asp.net Web 服务)。假设您当前的 asp Web 服务名为“MyWebService”...将其编译为 MyWebServiceAspClassic,并将新转换的 Web 服务编译为“MyWebServiceAspNet”。

      使用您上面提到的当前 URL 编译一个全新的 Web 服务 (MyWebServiceWrapper)。然后,在包装器 WebService 中引用 2 个新编译的 MyWebService。然后您可以使用 QueryString 参数来决定使用哪个引用的 Web 服务。哇!有意义吗?

      【讨论】:

        猜你喜欢
        • 2021-11-25
        • 1970-01-01
        • 2010-10-19
        • 2012-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        相关资源
        最近更新 更多