Asp.net 在IIS 7.5的同一端口上运行两个网站?
我们需要能够在相同的intranet服务器和端口号上运行一个ASP.net web应用程序的两个版本,但一个映射到/,另一个映射到/实验(不是真实名称,但足够接近) C:\inetpub\wwwroot\Version1=> C:\inetpub\wwwroot\Version2=> 第一个URL已经向一些测试版用户公开,因此需要保持一定的稳定性。第二个将包含实验代码,只有前往/实验的用户才能看到。我们没有使用不同服务器或不同端口的选项 在过去,我通过将/映射到IIS中“站点”下的一个站点,然后将第二个站点作为应用程序添加到其下,并将其别名为/site2来实现这一点 服务器 地点Asp.net 在IIS 7.5的同一端口上运行两个网站?,asp.net,iis,request,asp.net-routing,Asp.net,Iis,Request,Asp.net Routing,我们需要能够在相同的intranet服务器和端口号上运行一个ASP.net web应用程序的两个版本,但一个映射到/,另一个映射到/实验(不是真实名称,但足够接近) C:\inetpub\wwwroot\Version1=> C:\inetpub\wwwroot\Version2=> 第一个URL已经向一些测试版用户公开,因此需要保持一定的稳定性。第二个将包含实验代码,只有前往/实验的用户才能看到。我们没有使用不同服务器或不同端口的选项 在过去,我通过将/映射到IIS中“站点”下的一个站点,然后
默认网站您能否在不同的子域运行其中一个网站,例如test1.organization.com和beta1.organization.com?如果是这样,则可以在IIS中将它们都设置为顶级网站,并在每个网站绑定上设置主机名,以便它们都可以在相同的IP地址和端口上运行 ARR和重写规则的组合将很好地解决这个问题。以下是要遵循的步骤:
<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>
如需进一步帮助,请确保并浏览Ruslan Yakushev的博客:
这将为您提供三个完全独立的网站,可以通过端口80上的单个门面访问(当然,如果需要,您可以直接在端口81和82上访问每个网站:
http://localhost:81/default.aspx
,例如)。谢谢您的回复。不,我们不能那样做。DNS人员不会让我们为像我们这样的临时托管情况注册一个新的子域。我的想法是做默认的(一个顶级站点,一个嵌套的应用程序)或者一个顶级站点,有两个虚拟目录或者嵌套的应用程序,还有一些路由。这太糟糕了。特别是因为您不必注册子域,只需让某人添加一个DNS条目(换句话说,它是免费的)。=]严肃地说,如果使用嵌套方法,需要注意的一点是,除非禁用它,否则嵌套应用程序将从父级继承web.config设置(有关详细信息,请参见此处)。这就是我喜欢避免嵌套应用程序的原因之一。对不起,我应该用一个比注册更轻的术语。在过去,这曾经是一个电话给某人;现在它需要变更控制会议和签准。我们唯一能控制的就是网络服务器本身。是的,我知道这是怎么回事。可能需要40个小时的会议才能做出一个真正需要15秒的改变。有鉴于此,尝试一种不同的方法当然是有意义的。您已经尝试过的嵌套方法是我所知道的实现这一点的唯一明智的方法。无论如何,您都不能定义映射到test1.organization.com/experimental
的网站,因为该网站定义为第一个/
之前的所有内容。第一个/
后面的第一部分是应用程序或根应用程序下的子目录。感谢您的响应。确认一下:在这种情况下,如果我将site1绑定到80,site2绑定到81,site3绑定到82,我应该能够将site1/default.aspx的所有请求路由到site2/default.aspx,并将site1/test/default.aspx的所有请求路由到site3/default.aspx?@Geoffrey McGrath感谢您的详细指导。但是我没能做到。我的规则是-,它总是让我想到。Don,对于您编写的规则,您的测试URL必须包含一个尾随斜杠,并且可以选择在尾随斜杠之后添加其他数据。这两个例子应该适用于您:(1)(2)