2011-08-06 45 views
1

我有一个个人项目,逻辑层和数据库是平等的,但我有两个域,唯一改变的就是URL ,和母版页。ASP.NET - 谁可以使用一个Web应用程序并“托管”很多站点

我需要的是一个简单的系统来识别URL并显示正确的站点master,因为我使用的是与ASP.NET表,存储过程等配置相同的数据库。

我见过的最类似的东西,这是DNN门户系统,但我不需要所有的功能,如单独的登录系统。

在此先感谢。

回答

0

我想沿着这些线路的东西会得到你所需要的:

在IIS中,点两个URL到同一个虚拟目录,所以它们都从同一个地方服务 -

添加PreInit事件读取URL然后加载一个MasterPage相应地:

void Page_PreInit(Object sender, EventArgs e) 
{ 
    if(Request.Url.AbsoluteUri.Contains("mysite.com")) 
    { 
    this.MasterPageFile = "master page file goes here"; 
    } 
} 

希望让你在正确的方向!

+0

另一个简单而优雅的解决方案! :) 谢谢,这也解决了我的问题,因为我有一个每页的BasePage! :) – joaoasrosa

0

您可以使主页面动态。主机名可以在以下位置找到:

HttpContext.Current.Request.ServerVariables["SERVER_NAME"] 

您可以在母版页中使用它来更改其输出。

+0

简单而优雅! :) 就是这样一个搜索! 您推荐在全局,宽主页面或预先初始页面上使用此行程? 谢谢! – joaoasrosa

0

我会更进一步,将不同的东西抽象出来,然后使用依赖注入来解决你需要的东西。

+0

你能解释一下你的观点吗? – joaoasrosa

+0

我还没有尝试过,但它应该可以工作。如果你开始使用依赖注入器,比如Ninject,那就是向前迈进了一步。之后,如果您托管在同一个Web服务器上,则可以为每个请求注册特定于服务器的组件。使用提取不同部分的接口,然后为每个公司实施一个接口。这有点难以解释,但如果你阅读Ninject和其他依赖注入器框架,你可能会自己想出它。 –

+0

感谢您的解释! :)我在为它而烦恼! – joaoasrosa

相关问题