在同一台服务器上创建一个aspx网站的“克隆”

问题描述:

我目前正在一个aspx网站上工作。我想创建一个“克隆”,即在另一个文件夹中运行同一整个网站,例如,我希望www.example.com也可以在www.example.com/temp_site上运行。将创建一个新文件夹temp_site并将我的httpdocs文件夹的所有内容复制到temp_site工作?在同一台服务器上创建一个aspx网站的“克隆”

谢谢!

你可以写一个httpmodule类来实现它。以下是示例代码

public class RidirectModule : IHttpModule 

{

#region IHttpModule Members 

public void Dispose() 
{ 
    // Nothing to dispose 
} 

public void Init(HttpApplication context) 
{ 
    context.BeginRequest += new EventHandler(context_BeginRequest); 
} 

#endregion 


void context_BeginRequest(object sender, EventArgs e) 
{ 
    HttpContext context = HttpContext.Current;    
    if (context.Request.HttpMethod == "GET") 
    { 
     string query = context.Request.RawUrl; 
     if (query.Contains("/temp_site")) 
      context.Response.Redirect(query.Replace("/temp_site", "")); 
    }  
} 

}

然后加入在web.config文件的HTTP模块。

如果它是一个asp.net Web应用程序,当您复制整个内容并将其放入一个子文件夹时,您的bin文件夹(您拥有dll的地方)可能会带来问题。这导致你有2个相同的dll bin目录,你将面临问题。

如果你有源代码,为什么不在你的解决方案中创建一个临时文件夹,然后添加所需的文件(asp.net)。你可以跳过复制通用文件(images/css/js/user控制等)并更新复制的页面以使用现有的页面。

如果您没有源代码,请尝试复制bin文件夹以外的所有内容并将其保存在子目录中。您可以更新链接到您的CSS文件/图像(在复制的文件中)以引用现有的CSS/images/js文件以避免重复的项目,然后删除它们的第二个副本(当我们复制到sub目录)

+0

是的,它在bin文件夹中使用dll。那么你如何建议我解决这个问题? – user1016313 2011-12-14 03:04:15