我在visual 2010中创建了一个新的web窗体应用程序,只有两页Default.aspx和About.aspx。我想要的是,当我在中调试应用程序并输入http://company1.localhost:1023时,它应该只显示带有This is default page for company1消息的默认页面。我如何使用url路由来完成它,而不是在IIS中执行设置?
注意:我知道多租户是一个很大的词,不应该用于这样简单的场景,但我的需求很简单。对于没有扩展点的每一家公司,我只运行相同的应用实例。这个问题也可以说是如何以编程方式创建子域。
发布于 2012-03-05 12:52:50
为此,您必须正确配置IIS (或者DNS)。例如,您的所有子域都应该由IIS中指定的网站处理.通常,如果只有单个网站,则可以将IIS配置为处理所有主机标头,但对于多个网站,IIS通常按主机头配置为不同。因此,对您来说,正确的配置是重要的部分。
一旦您到达正确的网站,资源处理将由IIS元库完成.因此,在这种情况下,它将重新定向到配置好的站点默认资源。如果存在资源名称,则扩展(htm,aspx)将决定处理。Aspx扩展将由ASP.NET处理,然后您所需要做的就是查找当前的主机头并做出相应的决定。例如,
protected void Page_Load(object sender, EventArgs e)
{
if (request.Url.HostNameType == UriHostNameType.Dns)
{
var hostParts = Request.Url.Host.Split('.');
// you may validate if sub-domain name is present or not
lblMessage.Text = "This is default page for " + hostParts[0];
}
}https://stackoverflow.com/questions/9565961
复制相似问题