use*_*825 13 asp.net iis asp.net-routing request
我们需要能够在同一个Intranet服务器和端口号上运行一个ASP.net Web应用程序的两个版本,但是一个映射到/,另一个映射到/ experimental(不是真实姓名,但足够接近).
C:\ inetpub\wwwroot\Version1 => http://test1.organization.com/ C:\ inetpub\wwwroot\Version2 => http://test1.organization.com/experimental
第一个URL已经暴露给一些beta用户,因此需要保持一定的稳定性.第二个将包含实验代码,只有用户进入/实验将会看到.我们没有使用其他服务器或不同端口的选项.
我以前通过/映射到IIS中的站点下的站点,然后将第二个站点添加为其下的应用程序,并将其别名化为/ site2来实现此目的.
服务器站点默认网站<=物理路径映射到第一个版本和//Application1 <=嵌套应用程序映射到第二个版本和/ experimental
但是,这似乎很草率.使用重写规则或使用ARR执行此操作会更清晰吗?如果是这样,怎么样?
谢谢!
Geo*_*ath 13
ARR和重写规则的组合将很好地解决这个问题.以下是要遵循的步骤:
http:*:80:
.将其命名为"默认网站".将其物理路径指向"%SystemDrive%\ inetpub\DefaultWebSite"为"默认"网站创建一个web.config文件,并在那里写下您的路由规则:
<rules>
<rule name="Reverse Proxy for Experimental" stopProcessing="true">
<match url="^.*/experimental/.*" />
<action type="Rewrite" url="http://{HTTP_HOST}:82/{R:0}" />
</rule>
<rule name="Reverse Proxy for Release" stopProcessing="true">
<match url=".*" />
<action type="Rewrite" url="http://{HTTP_HOST}:81/{R:0}" />
</rule>
</rules>
Run Code Online (Sandbox Code Playgroud)你可能不得不在一定程度上改写你的重写规则,你可以在IIS上使用URL重写模块applet进行实验,并在这里阅读更多相关内容:http://learn.iis.net/page.aspx/500/testing-rewrite-规则模式/ 有关进一步的帮助,请务必浏览Ruslan Yakushev的博客:http://ruslany.net/
这将为您提供三个完全独立的网站,可通过端口80上的单个外观进行访问(当然,如果您需要,您可以直接在端口81和82上点击每个网站:) http://localhost:81/default.aspx
.