在IIS中引导请求

时间:2010-06-23 19:33:47

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

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

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

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

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

有人有建议吗?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

享受!

答案 2 :(得分:0)

您可以创建包装器Web服务。

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

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