我们需要能够在相同的 Intranet 服务器和端口号上运行一个 ASP.net Web 应用程序的两个版本,但一个映射到/,另一个映射到/experimental(不是实名,但足够接近)。
C:\inetpub\wwwroot\Version1 => http://test1.organization.com/
C:\inetpub\wwwroot\Version2 => http://test1.organization.com/experimental
第一个 URL 已经暴露给一些 beta 用户,因此需要保持一定的稳定性。第二个将包含只有进入/experimental 的用户才能看到的实验代码。我们无法选择使用不同的服务器或不同的端口。
过去,我通过将/映射到 IIS 中的站点下的站点,然后将第二个站点作为应用程序添加到它下面,并将其别名为/site2 来实现这一点。
服务器
网站
默认网站 <= 映射到第一个版本的物理路径和/
/Application1 <= 嵌套应用程序映射到第二个版本和/experimental
然而,这似乎是草率的。使用重写规则或使用 ARR 会更干净吗?如果是这样,怎么做?
谢谢!
最佳答案
ARR 和重写规则的组合将很好地解决这个问题。以下是要遵循的步骤:
http:*:80:
.将其命名为“默认网站”。将其物理路径指向“%SystemDrive%\inetpub\DefaultWebSite”<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>
这将为您提供三个完全独立的网站,可通过端口 80 上的单个外观访问(当然,如果需要,您可以直接在端口 81 和 82 上访问每个网站:例如
http://localhost:81/default.aspx
)。
关于asp.net - 在 IIS 7.5 上的同一端口上运行两个网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087162/