2010-06-23 48 views
0

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

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

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

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

任何人都有建议吗?

回答

1

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

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

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

0

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

享受!

+0

这与我的想法是一致的。但是,对于IIS/Microsoft服务器。我正在寻找目前的网址重写,这看起来很有希望。 – aepheus 2010-06-23 19:55:52

+0

我在Windows上使用过apache。因此,建立单独的代理服务器并将其中一个应用程序重定向到您的应用程序服务器(s) – Doug 2010-06-23 19:58:34

0

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

使用新的命名空间编译当前的经典asp(以及想要转换为的asp.net web服务)。假设你当前的asp Web服务被称为“MyWebService”...将其编译到MyWebServiceAspClassic中,并将新转换后的Web服务编译为“MyWebServiceAspNet”。

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