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

时间:2011-12-14 02:58:20

标签: asp.net iis

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您可以编写 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文件中添加httpmodule。